From e2c595a6699596b4d0e14515fd563a849c1a6703 Mon Sep 17 00:00:00 2001 From: SillyStar-Github <90102598+SillyStar-Github@users.noreply.github.com> Date: Sun, 18 Jan 2026 01:52:27 -0500 Subject: [PATCH] starbound part 1 --- .../BaseTextObjects/InGameText_Patch.cs | 1 + .../AdvantureEvolutionMenu_Patch.cs | 13 ++++ .../GameObjects/AdvantureHelpMenu_Patch.cs | 21 +++++++ .../GameObjects/AdvantureMenu2_Patch.cs | 28 +++++++++ .../GameObjects/AdvantureMenu_Patch.cs | 52 ++++++++++++++++ .../GameObjects/AdvantureMissionMenu_Patch.cs | 31 ++++++++++ .../GameObjects/AdvantureStarMenu_Patch.cs | 61 +++++++++++++++++++ ...PvZ Fusion Translator [MelonLoader].csproj | 6 ++ 8 files changed, 213 insertions(+) create mode 100644 MelonLoader/Patches/GameObjects/AdvantureEvolutionMenu_Patch.cs create mode 100644 MelonLoader/Patches/GameObjects/AdvantureHelpMenu_Patch.cs create mode 100644 MelonLoader/Patches/GameObjects/AdvantureMenu2_Patch.cs create mode 100644 MelonLoader/Patches/GameObjects/AdvantureMenu_Patch.cs create mode 100644 MelonLoader/Patches/GameObjects/AdvantureMissionMenu_Patch.cs create mode 100644 MelonLoader/Patches/GameObjects/AdvantureStarMenu_Patch.cs diff --git a/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs b/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs index d45e8ee..e89d4ad 100644 --- a/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs +++ b/MelonLoader/Patches/BaseTextObjects/InGameText_Patch.cs @@ -11,6 +11,7 @@ namespace PvZ_Fusion_Translator.Patches.BaseTextObjects public static class InGameText_Patch { [HarmonyPatch(nameof(InGameText.ShowText))] + [HarmonyPostfix] public static void ShowText(InGameText __instance) { TMP_FontAsset fontAsset = FontStore.LoadTMPFont(Utils.Language.ToString()); diff --git a/MelonLoader/Patches/GameObjects/AdvantureEvolutionMenu_Patch.cs b/MelonLoader/Patches/GameObjects/AdvantureEvolutionMenu_Patch.cs new file mode 100644 index 0000000..e07e77c --- /dev/null +++ b/MelonLoader/Patches/GameObjects/AdvantureEvolutionMenu_Patch.cs @@ -0,0 +1,13 @@ +using HarmonyLib; +using Il2Cpp; +using Il2CppTMPro; +using PvZ_Fusion_Translator.AssetStore; + +namespace PvZ_Fusion_Translator.Patches.GameObjects +{ + [HarmonyPatch(typeof(AdvantureEvolutionMenu))] + public static class AdvantureEvolutionMenu_Patch + { + + } +} diff --git a/MelonLoader/Patches/GameObjects/AdvantureHelpMenu_Patch.cs b/MelonLoader/Patches/GameObjects/AdvantureHelpMenu_Patch.cs new file mode 100644 index 0000000..80a540d --- /dev/null +++ b/MelonLoader/Patches/GameObjects/AdvantureHelpMenu_Patch.cs @@ -0,0 +1,21 @@ +using HarmonyLib; +using Il2Cpp; +using Il2CppTMPro; +using PvZ_Fusion_Translator.AssetStore; + +namespace PvZ_Fusion_Translator.Patches.GameObjects +{ + [HarmonyPatch(typeof(AdvantureHelpMenu))] + public static class AdvantureHelpMenu_Patch + { + [HarmonyPatch(nameof(AdvantureHelpMenu.InitText))] + [HarmonyPostfix] + private static void InitText(AdvantureHelpMenu __instance) + { + foreach(TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + } +} diff --git a/MelonLoader/Patches/GameObjects/AdvantureMenu2_Patch.cs b/MelonLoader/Patches/GameObjects/AdvantureMenu2_Patch.cs new file mode 100644 index 0000000..2c46df7 --- /dev/null +++ b/MelonLoader/Patches/GameObjects/AdvantureMenu2_Patch.cs @@ -0,0 +1,28 @@ +using HarmonyLib; +using Il2Cpp; +using Il2CppTMPro; +using PvZ_Fusion_Translator.AssetStore; + +namespace PvZ_Fusion_Translator.Patches.GameObjects +{ + [HarmonyPatch(typeof(AdvantureMenu2))] + public static class AdvantureMenu2_Patch + { + [HarmonyPatch(nameof(AdvantureMenu2.Awake))] + [HarmonyPostfix] + private static void Awake(AdvantureMenu2 __instance) + { + foreach(TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + + [HarmonyPatch(nameof(AdvantureMenu2.AdjustDifficulty))] + [HarmonyPostfix] + private static void AdjustDifficulty(AdvantureMenu2 __instance) + { + __instance.difficulty.text = StringStore.TranslateText(__instance.difficulty.text); + } + } +} diff --git a/MelonLoader/Patches/GameObjects/AdvantureMenu_Patch.cs b/MelonLoader/Patches/GameObjects/AdvantureMenu_Patch.cs new file mode 100644 index 0000000..62ff70e --- /dev/null +++ b/MelonLoader/Patches/GameObjects/AdvantureMenu_Patch.cs @@ -0,0 +1,52 @@ +using HarmonyLib; +using Il2Cpp; +using Il2CppTMPro; +using PvZ_Fusion_Translator.AssetStore; + +namespace PvZ_Fusion_Translator.Patches.GameObjects +{ + [HarmonyPatch(typeof(AdvantureMenu))] + public static class AdvantureMenu_Patch + { + [HarmonyPatch(nameof(AdvantureMenu.Start))] + [HarmonyPostfix] + private static void Start(AdvantureMenu __instance) + { + foreach (TextMeshProUGUI titleText in __instance.GetComponentsInChildren()) + { + titleText.text = StringStore.TranslateText(titleText.text); + } + __instance.difficulty.text = StringStore.TranslateText(__instance.difficulty.text); + __instance.chapterDifficulty.text = StringStore.TranslateText(__instance.chapterDifficulty.text, pattern: "章节难度:([^\\s]+)"); + __instance.starCount.text = StringStore.TranslateText(__instance.starCount.text); + } + + [HarmonyPatch(nameof(AdvantureMenu.ChangeDifficulty))] + [HarmonyPostfix] + private static void ChangeDifficulty(AdvantureMenu __instance) + { + __instance.difficulty.text = StringStore.TranslateText(__instance.difficulty.text); + } + + [HarmonyPatch(nameof(AdvantureMenu.GetChapterDifficulty))] + [HarmonyPostfix] + private static void GetChapterDifficulty(AdvantureMenu __instance) + { + __instance.chapterDifficulty.text = StringStore.TranslateText(__instance.chapterDifficulty.text, pattern: "章节难度:([^\\s]+)"); + } + + [HarmonyPatch(nameof(AdvantureMenu.UpdateChapterDifficulty))] + [HarmonyPostfix] + private static void UpdateChapterDifficulty(AdvantureMenu __instance) + { + __instance.chapterDifficulty.text = StringStore.TranslateText(__instance.chapterDifficulty.text, pattern: "章节难度:([^\\s]+)"); + } + + [HarmonyPatch(nameof(AdvantureMenu.UpdateStarCount))] + [HarmonyPostfix] + private static void UpdateStarCount(AdvantureMenu __instance) + { + __instance.starCount.text = StringStore.TranslateText(__instance.starCount.text); + } + } +} diff --git a/MelonLoader/Patches/GameObjects/AdvantureMissionMenu_Patch.cs b/MelonLoader/Patches/GameObjects/AdvantureMissionMenu_Patch.cs new file mode 100644 index 0000000..1f5268e --- /dev/null +++ b/MelonLoader/Patches/GameObjects/AdvantureMissionMenu_Patch.cs @@ -0,0 +1,31 @@ +using HarmonyLib; +using Il2Cpp; +using Il2CppTMPro; +using PvZ_Fusion_Translator.AssetStore; + +namespace PvZ_Fusion_Translator.Patches.GameObjects +{ + [HarmonyPatch(typeof(AdvantureMissionMenu))] + public static class AdvantureMissionMenu_Patch + { + [HarmonyPatch(nameof(AdvantureMissionMenu.InitText))] + [HarmonyPostfix] + private static void InitText(AdvantureMissionMenu __instance) + { + foreach(TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + + [HarmonyPatch(nameof(AdvantureMissionMenu.SwitchAward))] + [HarmonyPostfix] + private static void SwitchAward(AdvantureMissionMenu __instance) + { + foreach (TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + } +} diff --git a/MelonLoader/Patches/GameObjects/AdvantureStarMenu_Patch.cs b/MelonLoader/Patches/GameObjects/AdvantureStarMenu_Patch.cs new file mode 100644 index 0000000..9af61ce --- /dev/null +++ b/MelonLoader/Patches/GameObjects/AdvantureStarMenu_Patch.cs @@ -0,0 +1,61 @@ +using HarmonyLib; +using Il2Cpp; +using Il2CppTMPro; +using PvZ_Fusion_Translator.AssetStore; + +namespace PvZ_Fusion_Translator.Patches.GameObjects +{ + [HarmonyPatch(typeof(AdvantureStarMenu))] + public static class AdvantureStarMenu_Patch + { + [HarmonyPatch(nameof(AdvantureStarMenu.Awake))] + [HarmonyPostfix] + private static void Awake(AdvantureStarMenu __instance) + { + foreach(TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + + [HarmonyPatch(nameof(AdvantureStarMenu.GetNodes))] + [HarmonyPostfix] + private static void GetNodes(AdvantureStarMenu __instance) + { + foreach (TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + + [HarmonyPatch(nameof(AdvantureStarMenu.UpdateStarText))] + [HarmonyPostfix] + private static void UpdateStarText(AdvantureStarMenu __instance) + { + foreach (TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + + [HarmonyPatch(nameof(AdvantureStarMenu.InitTalents))] + [HarmonyPostfix] + private static void InitTalents(AdvantureStarMenu __instance) + { + foreach (TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + + [HarmonyPatch(nameof(AdvantureStarMenu.ResetAward))] + [HarmonyPostfix] + private static void ResetAward(AdvantureStarMenu __instance) + { + foreach (TextMeshProUGUI text in __instance.GetComponentsInChildren()) + { + text.text = StringStore.TranslateText(text.text); + } + } + } +} diff --git a/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj b/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj index 0526c80..e2eb414 100644 --- a/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj +++ b/MelonLoader/PvZ Fusion Translator [MelonLoader].csproj @@ -401,6 +401,12 @@ + + + + + +