Add locale to task adder

This commit is contained in:
Atony committed 2025-09-18 05:07:05 -05:00
1 parent 12a1908c3e
commit ae5f3783b4
3 files changed
+29 -9

No files matched your search

+12 -7
View File
@@ -10,6 +10,7 @@ using MiraAPI.Modifiers;
using MiraAPI.Modifiers.Types; using MiraAPI.Modifiers.Types;
using MiraAPI.PluginLoading; using MiraAPI.PluginLoading;
using MiraAPI.Roles; using MiraAPI.Roles;
using MiraAPI.Utilities;
using MiraAPI.Utilities.Assets; using MiraAPI.Utilities.Assets;
using Reactor.Utilities.Extensions; using Reactor.Utilities.Extensions;
using UnityEngine; using UnityEngine;
@@ -65,16 +66,18 @@ internal static class TaskAdderPatches
__instance.RootFolderPrefab.GetComponent<PassiveButton>().ClickMask = collider; __instance.RootFolderPrefab.GetComponent<PassiveButton>().ClickMask = collider;
__instance.RootFolderPrefab.gameObject.SetActive(false); __instance.RootFolderPrefab.gameObject.SetActive(false);
__instance.TaskParent = inner.transform; __instance.TaskParent = inner.transform;
var crewLocale = TranslationController.Instance.GetString(StringNames.Crewmate);
var impLocale = TranslationController.Instance.GetString(StringNames.Impostor);
var crewmateFolder = __instance.Root.SubFolders.ToArray().FirstOrDefault(x => x.FolderName == "Crewmate")!; var crewmateFolder = __instance.Root.SubFolders.ToArray().FirstOrDefault(x => x.FolderName == crewLocale)!;
var impostorFolder = __instance.Root.SubFolders.ToArray().FirstOrDefault(x => x.FolderName == "Impostor")!; var impostorFolder = __instance.Root.SubFolders.ToArray().FirstOrDefault(x => x.FolderName == impLocale)!;
var neutralFolder = __instance.CreateFolder("Neutral", __instance.Root, 2, Color.gray); //var neutralFolder = __instance.CreateFolder("Neutral", __instance.Root, 2, Color.gray);
var modifiersFolder = __instance.CreateFolder("Modifiers", __instance.Root, 0, Color.blue); var modifiersFolder = __instance.CreateFolder("Modifiers", __instance.Root, 0, Color.blue);
folders.Clear(); folders.Clear();
folders.Add(crewmateFolder.FolderName, crewmateFolder); folders.Add(crewmateFolder.FolderName, crewmateFolder);
folders.Add(impostorFolder.FolderName, impostorFolder); folders.Add(impostorFolder.FolderName, impostorFolder);
folders.Add("Neutrals", neutralFolder); //folders.Add("Neutrals", neutralFolder);
folders.Add("Modifiers", modifiersFolder); folders.Add("Modifiers", modifiersFolder);
int folderIdx = 3; int folderIdx = 3;
@@ -350,7 +353,7 @@ internal static class TaskAdderPatches
{ {
TaskAddButton roleAddButton = Object.Instantiate(__instance.RoleButton); TaskAddButton roleAddButton = Object.Instantiate(__instance.RoleButton);
roleAddButton.SafePositionWorld = __instance.SafePositionWorld; roleAddButton.SafePositionWorld = __instance.SafePositionWorld;
roleAddButton.Text.text = prettyEnabled ? role.NiceName : "Be_" + role.NiceName + ".exe"; roleAddButton.Text.text = prettyEnabled ? role.GetRoleName() : "Be_" + role.GetRoleName() + ".exe";
roleAddButton.Role = role; roleAddButton.Role = role;
if (prettyEnabled) if (prettyEnabled)
{ {
@@ -389,8 +392,10 @@ internal static class TaskAdderPatches
{ {
continue; continue;
} }
var crewLocale = TranslationController.Instance.GetString(StringNames.Crewmate);
var impLocale = TranslationController.Instance.GetString(StringNames.Impostor);
var teamFolder = roleBehaviour.IsImpostor ? "Impostor" : "Crewmate"; var teamFolder = roleBehaviour.IsImpostor ? impLocale : crewLocale;
if (roleBehaviour is ICustomRole cs) if (roleBehaviour is ICustomRole cs)
{ {
teamFolder = cs.Configuration.FreeplayFolder; teamFolder = cs.Configuration.FreeplayFolder;
@@ -403,7 +408,7 @@ internal static class TaskAdderPatches
var roleAddButton = Object.Instantiate(__instance.RoleButton); var roleAddButton = Object.Instantiate(__instance.RoleButton);
roleAddButton.MyTask = null; roleAddButton.MyTask = null;
roleAddButton.SafePositionWorld = __instance.SafePositionWorld; roleAddButton.SafePositionWorld = __instance.SafePositionWorld;
roleAddButton.Text.text = prettyEnabled ? roleBehaviour.NiceName : "Be_" + roleBehaviour.NiceName + ".exe"; roleAddButton.Text.text = prettyEnabled ? roleBehaviour.GetRoleName() : "Be_" + roleBehaviour.GetRoleName() + ".exe";
roleAddButton.Text.EnableMasking(); roleAddButton.Text.EnableMasking();
roleAddButton.role = roleBehaviour; roleAddButton.role = roleBehaviour;
if (prettyEnabled) if (prettyEnabled)
+2 -2
View File
@@ -34,8 +34,8 @@ public record struct CustomRoleConfiguration
ShowInFreeplay = roleBehaviour?.IsDead == false; ShowInFreeplay = roleBehaviour?.IsDead == false;
FreeplayFolder = role.Team switch FreeplayFolder = role.Team switch
{ {
ModdedRoleTeams.Crewmate => "Crewmate", ModdedRoleTeams.Crewmate => TranslationController.Instance.GetString(StringNames.Crewmate),
ModdedRoleTeams.Impostor => "Impostor", ModdedRoleTeams.Impostor => TranslationController.Instance.GetString(StringNames.Impostor),
_ => "Neutral", _ => "Neutral",
}; };
IntroSound = role.Team is ModdedRoleTeams.Crewmate IntroSound = role.Team is ModdedRoleTeams.Crewmate
+15
View File
@@ -5,6 +5,7 @@ using System.Globalization;
using System.Linq; using System.Linq;
using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppInterop.Runtime.InteropTypes.Arrays;
using MiraAPI.Keybinds; using MiraAPI.Keybinds;
using MiraAPI.Roles;
using MiraAPI.Utilities.Assets; using MiraAPI.Utilities.Assets;
using Rewired; using Rewired;
using TMPro; using TMPro;
@@ -495,4 +496,18 @@ public static class Helpers
(Il2CppSystem.Object[])[value.ToString(formatString, CultureInfo.InvariantCulture)]), (Il2CppSystem.Object[])[value.ToString(formatString, CultureInfo.InvariantCulture)]),
}; };
} }
/// <summary>
/// Returns the string of a role.
/// </summary>
/// <param name="role">The role to find.</param>
/// <returns>The role name.</returns>
public static string GetRoleName(this RoleBehaviour role)
{
if (role is ICustomRole custom)
{
return custom.RoleName;
}
return role.NiceName;
}
} }