diff --git a/MiraAPI/MiraAPI.csproj b/MiraAPI/MiraAPI.csproj index c2c0897..b3ce2ed 100644 --- a/MiraAPI/MiraAPI.csproj +++ b/MiraAPI/MiraAPI.csproj @@ -14,6 +14,16 @@ Steam 2024.3.5 + + + + + + + + + + diff --git a/MiraAPI/Patches/Options/GameSettingMenuPatches.cs b/MiraAPI/Patches/Options/GameSettingMenuPatches.cs index 4837dd4..93f0c42 100644 --- a/MiraAPI/Patches/Options/GameSettingMenuPatches.cs +++ b/MiraAPI/Patches/Options/GameSettingMenuPatches.cs @@ -1,11 +1,9 @@ using HarmonyLib; -using MiraAPI.GameOptions; -using Reactor.Utilities; +using MiraAPI.Utilities.Assets; using Reactor.Utilities.Extensions; -using System.Collections.Generic; -using System.Linq; -using MiraAPI.GameOptions.UI; +using TMPro; using UnityEngine; +using UnityEngine.Events; namespace MiraAPI.Patches.Options; @@ -13,11 +11,47 @@ namespace MiraAPI.Patches.Options; public static class GameSettingMenuPatches { + public static int currentSelectedMod = 0; + [HarmonyPrefix] [HarmonyPatch(nameof(GameSettingMenu.Start))] public static void StartPrefix(GameSettingMenu __instance) { - __instance.MenuDescriptionText.transform.parent.gameObject.SetActive(false); + Transform helpThing = __instance.transform.FindChild("What Is This?"); + GameObject tmpText = GameObject.Instantiate(helpThing.transform.FindChild("InfoText"), helpThing.parent).gameObject; + + tmpText.GetComponent().Destroy(); + tmpText.name = "SelectedMod"; + tmpText.transform.localPosition = new Vector3(-3.3382f, -0.4019f, -2f); + + TextMeshPro tmp = tmpText.GetComponent(); + tmp.text = "Mira API"; + tmp.fontSizeMax = 3; + tmp.fontSize = 3; + + tmp.alignment = TextAlignmentOptions.Center; + + GameObject nextButton = GameObject.Instantiate(__instance.BackButton, __instance.BackButton.transform.parent).gameObject; + nextButton.transform.localPosition = new Vector3(-2.2663f, -0.4037f, -25f); + nextButton.name = "NextButton"; + nextButton.transform.FindChild("Inactive").gameObject.GetComponent().sprite = MiraAssets.NextButton.LoadAsset(); + nextButton.transform.FindChild("Active").gameObject.GetComponent().sprite = MiraAssets.NextButtonActive.LoadAsset(); + nextButton.gameObject.GetComponent().OnClick.AddListener((UnityAction)(() => + { + currentSelectedMod += 1; + })); + + GameObject backButton = GameObject.Instantiate(nextButton, __instance.BackButton.transform.parent).gameObject; + nextButton.transform.localPosition = new Vector3(-4.4209f, -0.4037f, -25f); + nextButton.name = "BackButton"; + nextButton.transform.FindChild("Active").gameObject.GetComponent().flipX = nextButton.transform.FindChild("Inactive").gameObject.GetComponent().flipX = true; + backButton.gameObject.GetComponent().OnClick.RemoveAllListeners(); + backButton.gameObject.GetComponent().OnClick.AddListener((UnityAction)(() => + { + currentSelectedMod -= 1; + })); + + __instance.GamePresetsButton.gameObject.SetActive(false); } /*public static void CreateOptionsFor(GameSettingMenu __instance, ToggleOption togglePrefab, NumberOption numberPrefab, StringOption stringPrefab, Transform container, diff --git a/MiraAPI/Resources/Menu_Button.png b/MiraAPI/Resources/Menu_Button.png deleted file mode 100644 index f8d1566..0000000 Binary files a/MiraAPI/Resources/Menu_Button.png and /dev/null differ diff --git a/MiraAPI/Resources/NextButton.png b/MiraAPI/Resources/NextButton.png new file mode 100644 index 0000000..0eea8ea Binary files /dev/null and b/MiraAPI/Resources/NextButton.png differ diff --git a/MiraAPI/Resources/NextButtonActive.png b/MiraAPI/Resources/NextButtonActive.png new file mode 100644 index 0000000..62ac434 Binary files /dev/null and b/MiraAPI/Resources/NextButtonActive.png differ diff --git a/MiraAPI/Utilities/Assets/MiraAssets.cs b/MiraAPI/Utilities/Assets/MiraAssets.cs index 5957b9d..3a49328 100644 --- a/MiraAPI/Utilities/Assets/MiraAssets.cs +++ b/MiraAPI/Utilities/Assets/MiraAssets.cs @@ -3,5 +3,8 @@ public static class MiraAssets { public static readonly LoadableResourceAsset Empty = new("", ""); + + public static readonly LoadableResourceAsset NextButton = new("NextButton.png", "MiraAPI.Resources."); + public static readonly LoadableResourceAsset NextButtonActive = new("NextButtonActive.png", "MiraAPI.Resources."); } }