From 1930882a034a5f44339160a502a3c090e64a3201 Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 20 Mar 2024 17:05:07 -0400 Subject: [PATCH] Remove MF dependency (waiting on next owml update for missing hooks) --- NewHorizons/Main.cs | 8 ++++++- NewHorizons/NewHorizons.csproj | 2 +- .../OtherMods/MenuFramework/IMenuAPI.cs | 20 ------------------ .../OtherMods/MenuFramework/MenuHandler.cs | 10 +++------ NewHorizons/Utility/DebugTools/DebugReload.cs | 9 ++++---- .../Utility/DebugTools/Menu/DebugMenu.cs | 21 ++++++++++--------- NewHorizons/manifest.json | 4 ++-- 7 files changed, 28 insertions(+), 46 deletions(-) delete mode 100644 NewHorizons/OtherMods/MenuFramework/IMenuAPI.cs diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index db83045f..a8512246 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -263,7 +263,6 @@ namespace NewHorizons // Call this from the menu since we hadn't hooked onto the event yet Delay.FireOnNextUpdate(() => OnSceneLoaded(SceneManager.GetActiveScene(), LoadSceneMode.Single)); Delay.FireOnNextUpdate(() => _firstLoad = false); - Instance.ModHelper.Menus.PauseMenu.OnInit += DebugReload.InitializePauseMenu; MenuHandler.Init(); AchievementHandler.Init(); @@ -275,6 +274,13 @@ namespace NewHorizons LoadAddonManifest("Assets/addon-manifest.json", this); } + public override void SetupPauseMenu() + { + base.SetupPauseMenu(); + DebugReload.InitializePauseMenu(); + DebugMenu.InitializePauseMenu(); + } + public void OnDestroy() { NHLogger.Log($"Destroying NewHorizons"); diff --git a/NewHorizons/NewHorizons.csproj b/NewHorizons/NewHorizons.csproj index c1e195b3..04e06890 100644 --- a/NewHorizons/NewHorizons.csproj +++ b/NewHorizons/NewHorizons.csproj @@ -16,7 +16,7 @@ - + diff --git a/NewHorizons/OtherMods/MenuFramework/IMenuAPI.cs b/NewHorizons/OtherMods/MenuFramework/IMenuAPI.cs deleted file mode 100644 index f44aecdf..00000000 --- a/NewHorizons/OtherMods/MenuFramework/IMenuAPI.cs +++ /dev/null @@ -1,20 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; - -namespace NewHorizons.OtherMods.MenuFramework -{ - public interface IMenuAPI - { - GameObject TitleScreen_MakeMenuOpenButton(string name, int index, Menu menuToOpen); - GameObject TitleScreen_MakeSceneLoadButton(string name, int index, SubmitActionLoadScene.LoadableScenes sceneToLoad, PopupMenu confirmPopup = null); - Button TitleScreen_MakeSimpleButton(string name, int index); - GameObject PauseMenu_MakeMenuOpenButton(string name, Menu menuToOpen, Menu customMenu = null); - GameObject PauseMenu_MakeSceneLoadButton(string name, SubmitActionLoadScene.LoadableScenes sceneToLoad, PopupMenu confirmPopup = null, Menu customMenu = null); - Button PauseMenu_MakeSimpleButton(string name, Menu customMenu = null); - Menu PauseMenu_MakePauseListMenu(string title); - PopupMenu MakeTwoChoicePopup(string message, string confirmText, string cancelText); - PopupInputMenu MakeInputFieldPopup(string message, string placeholderMessage, string confirmText, string cancelText); - PopupMenu MakeInfoPopup(string message, string continueButtonText); - void RegisterStartupPopup(string message); - } -} diff --git a/NewHorizons/OtherMods/MenuFramework/MenuHandler.cs b/NewHorizons/OtherMods/MenuFramework/MenuHandler.cs index 101a0789..1a54fc46 100644 --- a/NewHorizons/OtherMods/MenuFramework/MenuHandler.cs +++ b/NewHorizons/OtherMods/MenuFramework/MenuHandler.cs @@ -11,15 +11,11 @@ namespace NewHorizons.OtherMods.MenuFramework { public static class MenuHandler { - private static IMenuAPI _menuApi; - private static List<(IModBehaviour mod, string message, bool repeat)> _registeredPopups = new(); private static List _failedFiles = new(); public static void Init() { - _menuApi = Main.Instance.ModHelper.Interaction.TryGetModApi("_nebula.MenuFramework"); - TextTranslation.Get().OnLanguageChanged += OnLanguageChanged; } @@ -35,14 +31,14 @@ namespace NewHorizons.OtherMods.MenuFramework Application.version); NHLogger.LogError(warning); - _menuApi.RegisterStartupPopup(warning); + Main.Instance.ModHelper.MenuHelper.PopupMenuManager.RegisterStartupPopup(warning); } foreach(var (mod, message, repeat) in _registeredPopups) { if (repeat || !NewHorizonsData.HasReadOneTimePopup(mod.ModHelper.Manifest.UniqueName)) { - _menuApi.RegisterStartupPopup(TranslationHandler.GetTranslation(message, TranslationHandler.TextType.UI)); + Main.Instance.ModHelper.MenuHelper.PopupMenuManager.RegisterStartupPopup(TranslationHandler.GetTranslation(message, TranslationHandler.TextType.UI)); NewHorizonsData.ReadOneTimePopup(mod.ModHelper.Manifest.UniqueName); } } @@ -52,7 +48,7 @@ namespace NewHorizons.OtherMods.MenuFramework var message = TranslationHandler.GetTranslation("JSON_FAILED_TO_LOAD", TranslationHandler.TextType.UI); var mods = string.Join(",", _failedFiles.Take(10)); if (_failedFiles.Count > 10) mods += "..."; - _menuApi.RegisterStartupPopup(string.Format(message, mods)); + Main.Instance.ModHelper.MenuHelper.PopupMenuManager.RegisterStartupPopup(string.Format(message, mods)); } _registeredPopups.Clear(); diff --git a/NewHorizons/Utility/DebugTools/DebugReload.cs b/NewHorizons/Utility/DebugTools/DebugReload.cs index 87dc99cf..446fcc8f 100644 --- a/NewHorizons/Utility/DebugTools/DebugReload.cs +++ b/NewHorizons/Utility/DebugTools/DebugReload.cs @@ -10,12 +10,12 @@ namespace NewHorizons.Utility.DebugTools public static class DebugReload { - private static IModButton _reloadButton; + private static SubmitAction _reloadButton; public static void InitializePauseMenu() { - _reloadButton = Main.Instance.ModHelper.Menus.PauseMenu.OptionsButton.Duplicate(TranslationHandler.GetTranslation("Reload Configs", TranslationHandler.TextType.UI).ToUpper()); - _reloadButton.OnClick += ReloadConfigs; + _reloadButton = Main.Instance.ModHelper.MenuHelper.PauseMenuManager.MakeSimpleButton(TranslationHandler.GetTranslation("Reload Configs", TranslationHandler.TextType.UI).ToUpper(), 3, true); + _reloadButton.OnSubmitAction += ReloadConfigs; UpdateReloadButton(); } @@ -23,8 +23,7 @@ namespace NewHorizons.Utility.DebugTools { if (_reloadButton != null) { - if (Main.Debug) _reloadButton.Show(); - else _reloadButton.Hide(); + _reloadButton.gameObject.SetActive(Main.Debug); } } diff --git a/NewHorizons/Utility/DebugTools/Menu/DebugMenu.cs b/NewHorizons/Utility/DebugTools/Menu/DebugMenu.cs index 07bd39f6..4f3f5074 100644 --- a/NewHorizons/Utility/DebugTools/Menu/DebugMenu.cs +++ b/NewHorizons/Utility/DebugTools/Menu/DebugMenu.cs @@ -15,7 +15,7 @@ namespace NewHorizons.Utility.DebugTools.Menu { class DebugMenu : MonoBehaviour { - private static IModButton pauseMenuButton; + private static SubmitAction pauseMenuButton; public GUIStyle _editorMenuStyle; public GUIStyle _tabBarStyle; @@ -34,6 +34,8 @@ namespace NewHorizons.Utility.DebugTools.Menu // Submenus private List submenus; private int activeSubmenu = 0; + + private static DebugMenu _instance; internal static JsonSerializerSettings jsonSettings = new JsonSerializerSettings { @@ -57,14 +59,14 @@ namespace NewHorizons.Utility.DebugTools.Menu { if (!staticInitialized) { + _instance = this; + staticInitialized = true; - Main.Instance.ModHelper.Menus.PauseMenu.OnInit += PauseMenuInitHook; + // This is lying, these hooks dont exist in the new menu system Main.Instance.ModHelper.Menus.PauseMenu.OnClosed += CloseMenu; Main.Instance.ModHelper.Menus.PauseMenu.OnOpened += RestoreMenuOpennessState; - PauseMenuInitHook(); - Main.Instance.OnChangeStarSystem.AddListener((string s) => { if (saveButtonUnlocked) { @@ -84,18 +86,17 @@ namespace NewHorizons.Utility.DebugTools.Menu } } - private void PauseMenuInitHook() + public static void InitializePauseMenu() { - pauseMenuButton = Main.Instance.ModHelper.Menus.PauseMenu.OptionsButton.Duplicate(TranslationHandler.GetTranslation("Toggle Dev Tools Menu", TranslationHandler.TextType.UI).ToUpper()); - InitMenu(); + pauseMenuButton = Main.Instance.ModHelper.MenuHelper.PauseMenuManager.MakeSimpleButton(TranslationHandler.GetTranslation("Toggle Dev Tools Menu", TranslationHandler.TextType.UI).ToUpper(), 3, true); + _instance.InitMenu(); } public static void UpdatePauseMenuButton() { if (pauseMenuButton != null) { - if (Main.Debug) pauseMenuButton.Show(); - else pauseMenuButton.Hide(); + pauseMenuButton.gameObject.SetActive(Main.Debug); } } @@ -284,7 +285,7 @@ namespace NewHorizons.Utility.DebugTools.Menu UpdatePauseMenuButton(); // TODO: figure out how to clear this event list so that we don't pile up useless instances of the DebugMenu that can't get garbage collected - pauseMenuButton.OnClick += ToggleMenu; + pauseMenuButton.OnSubmitAction += ToggleMenu; submenus.ForEach(submenu => submenu.OnInit(this)); diff --git a/NewHorizons/manifest.json b/NewHorizons/manifest.json index 1feb5fcd..60e49123 100644 --- a/NewHorizons/manifest.json +++ b/NewHorizons/manifest.json @@ -5,8 +5,8 @@ "name": "New Horizons", "uniqueName": "xen.NewHorizons", "version": "1.19.3", - "owmlVersion": "2.9.8", - "dependencies": [ "JohnCorby.VanillaFix", "_nebula.MenuFramework", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ], + "owmlVersion": "2.10.3", + "dependencies": [ "JohnCorby.VanillaFix", "xen.CommonCameraUtility", "dgarro.CustomShipLogModes" ], "conflicts": [ "Raicuparta.QuantumSpaceBuddies", "PacificEngine.OW_CommonResources" ], "pathsToPreserve": [ "planets", "systems", "translations" ], "donateLink": "https://www.patreon.com/ownh"