From ead9f4e105e2f509c9f16d4326c82f520766523d Mon Sep 17 00:00:00 2001 From: Soar Qin Date: Fri, 8 Sep 2023 20:20:55 +0800 Subject: [PATCH] WIP --- CheatEnabler/CheatEnabler.cs | 28 +++--- CheatEnabler/PlanetFunctions.cs | 160 ++++++++++++++++++++++++++++++++ CheatEnabler/UI/MyWindow.cs | 49 +++++++++- CheatEnabler/UIConfigWindow.cs | 42 ++++++++- 4 files changed, 265 insertions(+), 14 deletions(-) create mode 100644 CheatEnabler/PlanetFunctions.cs diff --git a/CheatEnabler/CheatEnabler.cs b/CheatEnabler/CheatEnabler.cs index 900f0d3..bf6c0cf 100644 --- a/CheatEnabler/CheatEnabler.cs +++ b/CheatEnabler/CheatEnabler.cs @@ -113,34 +113,38 @@ public class CheatEnabler : BaseUnityPlugin ShowConfigWindow(); } - [HarmonyPostfix, HarmonyPatch(typeof(UIRoot), "_OnOpen")] - public static void UIRoot__OnOpen_Postfix() + [HarmonyPostfix, HarmonyPatch(typeof(UIRoot), nameof(UIRoot.OpenMainMenuUI))] + public static void UIRoot_OpenMainMenuUI_Postfix() { if (_initialized) return; { var mainMenu = UIRoot.instance.uiMainMenu; - var src = mainMenu.newGameButton.gameObject; + var src = mainMenu.newGameButton; var parent = src.transform.parent; var btn = Instantiate(src, parent); - btn.name = "btn-cheatenabler-config"; - var btnConfig = btn.GetComponent(); - btnConfig.text.text = "CheatEnabler Config"; - btnConfig.text.fontSize = btnConfig.text.fontSize * 7 / 8; - I18N.OnInitialized += () => { btnConfig.text.text = "CheatEnabler Config".Translate(); }; - btnConfig.transform.SetParent(parent); + btn.name = "button-cheatenabler-config"; + var l = btn.text.GetComponent(); + if (l != null) + { + l.stringKey = "CheatEnabler Config"; + l.translation = "CheatEnabler Config".Translate(); + } + btn.text.text = "CheatEnabler Config".Translate(); + btn.text.fontSize = btn.text.fontSize * 7 / 8; + I18N.OnInitialized += () => { btn.text.text = "CheatEnabler Config".Translate(); }; var vec = ((RectTransform)mainMenu.exitButton.transform).anchoredPosition3D; var vec2 = ((RectTransform)mainMenu.creditsButton.transform).anchoredPosition3D; var transform1 = (RectTransform)btn.transform; transform1.anchoredPosition3D = new Vector3(vec.x, vec.y + (vec.y - vec2.y) * 2, vec.z); - btnConfig.button.onClick.RemoveAllListeners(); - btnConfig.button.onClick.AddListener(ShowConfigWindow); + btn.button.onClick.RemoveAllListeners(); + btn.button.onClick.AddListener(ShowConfigWindow); } { var panel = UIRoot.instance.uiGame.planetGlobe; var src = panel.button2; var sandboxMenu = UIRoot.instance.uiGame.sandboxMenu; var icon = sandboxMenu.categoryButtons[6].transform.Find("icon")?.GetComponent()?.sprite; - var b = GameObject.Instantiate