From ca2fccbc200266f95c8df57f0f2938a828e0d961 Mon Sep 17 00:00:00 2001 From: _nebula <41904486+misternebula@users.noreply.github.com> Date: Wed, 20 Mar 2024 20:30:48 +0000 Subject: [PATCH] use owml startup popups --- MenuFramework/MenuFramework.csproj | 38 +++---- MenuFramework/StartupPopupManager.cs | 155 +-------------------------- MenuFramework/manifest.json | 4 +- MenuFramework/packages.config | 2 +- 4 files changed, 24 insertions(+), 175 deletions(-) diff --git a/MenuFramework/MenuFramework.csproj b/MenuFramework/MenuFramework.csproj index 16871ca..f38530b 100644 --- a/MenuFramework/MenuFramework.csproj +++ b/MenuFramework/MenuFramework.csproj @@ -78,7 +78,7 @@ ..\packages\MonoMod.Utils.21.8.19.1\lib\net40\MonoMod.Utils.dll - ..\packages\OWML.2.9.8\lib\net48\NAudio-Unity.dll + ..\packages\OWML.2.10.1\lib\net48\NAudio-Unity.dll ..\packages\OuterWildsGameLibs.1.1.14.768\lib\netstandard.dll @@ -86,32 +86,32 @@ ..\packages\OuterWildsGameLibs.1.1.14.768\lib\Newtonsoft.Json.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.Common.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.Common.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.Logging.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.Logging.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.ModHelper.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.ModHelper.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.ModHelper.Assets.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.ModHelper.Assets.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.ModHelper.Events.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.ModHelper.Events.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.ModHelper.Input.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.ModHelper.Input.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.ModHelper.Interaction.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.ModHelper.Interaction.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.ModHelper.Menus.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.ModHelper.Menus.dll - - ..\packages\OWML.2.9.8\lib\net48\OWML.Utils.dll + + ..\packages\OWML.2.10.1\lib\net48\OWML.Utils.dll ..\packages\OuterWildsGameLibs.1.1.14.768\lib\System.dll diff --git a/MenuFramework/StartupPopupManager.cs b/MenuFramework/StartupPopupManager.cs index 0b1ef44..a7fbde6 100644 --- a/MenuFramework/StartupPopupManager.cs +++ b/MenuFramework/StartupPopupManager.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using UnityEngine; +using UnityEngine; namespace MenuFramework { @@ -15,154 +9,9 @@ namespace MenuFramework private void Awake() => Instance = this; - private void Start() - { - Main.Helper.HarmonyHelper.AddPrefix(nameof(TitleScreenManager.DetermineStartupPopups), typeof(StartupPatches), nameof(StartupPatches.DetermineStartupPopups)); - Main.Helper.HarmonyHelper.AddPrefix(nameof(TitleScreenManager.OnUserConfirmStartupPopup), typeof(StartupPatches), nameof(StartupPatches.OnUserConfirmStartupPopup)); - - if (typeof(TitleScreenManager).GetMethods(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static).Any(x => x.Name == "ShowStartupPopupsAndShowMenu")) - { - Main.Helper.HarmonyHelper.AddPrefix("ShowStartupPopupsAndShowMenu", typeof(StartupPatches), nameof(StartupPatches.ShowStartupPopupsAndShowMenu)); - } - else - { - Main.Helper.HarmonyHelper.AddPrefix("TryShowStartupPopupsAndShowMenu", typeof(StartupPatches), nameof(StartupPatches.TryShowStartupPopupsAndShowMenu)); - Main.Helper.HarmonyHelper.AddPrefix("TryShowStartupPopups", typeof(StartupPatches), nameof(StartupPatches.TryShowStartupPopups)); - } - } - - public int ActivePopup; - - public List PopupsToShow = new List(); - - public List Popups = new List() - { - UITextLibrary.GetString(UITextType.MenuMessage_InputUpdate), - UITextLibrary.GetString(UITextType.MenuMessage_ReducedFrightOptionAvail), - UITextLibrary.GetString(UITextType.MenuMessage_NewExhibit) - }; - public void RegisterStartupPopup(string message) { - PopupsToShow.Add(Popups.Count); - Popups.Add(message); - } - } - - public static class StartupPatches - { - public static bool DetermineStartupPopups(TitleScreenManager __instance) - { - if (__instance._profileManager.currentProfileGameSave.version == "NONE") - { - StartupPopupManager.Instance.PopupsToShow.Add(0); - } - - var ownsDlc = EntitlementsManager.IsDlcOwned() == EntitlementsManager.AsyncOwnershipStatus.Owned; - - if (ownsDlc && (__instance._profileManager.currentProfileGameSave.shownPopups & StartupPopups.ReducedFrights) == StartupPopups.None) - { - StartupPopupManager.Instance.PopupsToShow.Add(1); - } - - if (ownsDlc && (__instance._profileManager.currentProfileGameSave.shownPopups & StartupPopups.NewExhibit) == StartupPopups.None) - { - StartupPopupManager.Instance.PopupsToShow.Add(2); - } - - return false; - } - - public static bool ShowStartupPopupsAndShowMenu(TitleScreenManager __instance) - { - var popupManger = StartupPopupManager.Instance; - - if (popupManger.PopupsToShow.Count == 0) - { - __instance._okCancelPopup.ResetPopup(); - __instance.SetUpMainMenu(); - __instance.FadeInMenuOptions(); - return false; - } - - popupManger.ActivePopup = popupManger.PopupsToShow.OrderBy(x => x).First(); - var message = popupManger.Popups[popupManger.ActivePopup]; - - __instance._inputModule.EnableInputs(); - __instance._titleMenuRaycastBlocker.blocksRaycasts = false; - __instance._okCancelPopup.ResetPopup(); - __instance._okCancelPopup.SetUpPopup(message, InputLibrary.menuConfirm, null, __instance._continuePrompt, null, true, false); - __instance._okCancelPopup.OnPopupConfirm += __instance.OnUserConfirmStartupPopup; - __instance._okCancelPopup.EnableMenu(true); - - return false; - } - - public static bool OnUserConfirmStartupPopup(TitleScreenManager __instance) - { - var popupManger = StartupPopupManager.Instance; - - popupManger.PopupsToShow.Remove(popupManger.ActivePopup); - - if (popupManger.ActivePopup <= 2) - { - switch (popupManger.ActivePopup) - { - case 0: - PlayerData.SetShownPopups(StartupPopups.ResetInputs); - break; - case 1: - PlayerData.SetShownPopups(StartupPopups.ReducedFrights); - break; - case 2: - PlayerData.SetShownPopups(StartupPopups.NewExhibit); - break; - } - - PlayerData.SaveCurrentGame(); - } - - popupManger.ActivePopup = -1; - __instance._okCancelPopup.OnPopupConfirm -= __instance.OnUserConfirmStartupPopup; - __instance._inputModule.DisableInputs(); - __instance._titleMenuRaycastBlocker.blocksRaycasts = true; - __instance.TryShowStartupPopupsAndShowMenu(true); - - return false; - } - - public static bool TryShowStartupPopupsAndShowMenu(TitleScreenManager __instance) - { - var popupManger = StartupPopupManager.Instance; - - if (popupManger.PopupsToShow.Count == 0) - { - __instance._okCancelPopup.ResetPopup(); - __instance.SetUpMainMenu(); - __instance.FadeInMenuOptions(); - return false; - } - - __instance.TryShowStartupPopups(); - - return false; - } - - public static bool TryShowStartupPopups(TitleScreenManager __instance) - { - var popupManger = StartupPopupManager.Instance; - - popupManger.ActivePopup = popupManger.PopupsToShow.First(); - var message = popupManger.Popups[popupManger.ActivePopup]; - - __instance._inputModule.EnableInputs(); - __instance._titleMenuRaycastBlocker.blocksRaycasts = false; - __instance._okCancelPopup.ResetPopup(); - __instance._okCancelPopup.SetUpPopup(message, InputLibrary.menuConfirm, null, __instance._continuePrompt, null, true, false); - __instance._okCancelPopup.OnPopupConfirm += __instance.OnUserConfirmStartupPopup; - __instance._okCancelPopup.EnableMenu(true); - - return false; + Main.Helper.MenuHelper.PopupMenuManager.RegisterStartupPopup(message); } } } diff --git a/MenuFramework/manifest.json b/MenuFramework/manifest.json index 6ffd8db..1d07c51 100644 --- a/MenuFramework/manifest.json +++ b/MenuFramework/manifest.json @@ -4,6 +4,6 @@ "name": "Menu Framework", "description": "Custom menu framework/wrapper.", "uniqueName": "_nebula.MenuFramework", - "version": "4.0.0", - "owmlVersion": "2.9.8" + "version": "5.0.0", + "owmlVersion": "2.10.1" } \ No newline at end of file diff --git a/MenuFramework/packages.config b/MenuFramework/packages.config index 31130f6..0adcb81 100644 --- a/MenuFramework/packages.config +++ b/MenuFramework/packages.config @@ -7,5 +7,5 @@ - + \ No newline at end of file