From 3ea4a3ab2da15cdfc332b5352d3da8d556f6730f Mon Sep 17 00:00:00 2001 From: xen-42 Date: Wed, 15 Jan 2025 16:32:58 -0500 Subject: [PATCH] Make a config --- NewHorizons/External/Configs/AddonConfig.cs | 5 +++++ .../External/Configs/MainMenuConfig.cs | 19 +++++++++++++++++++ NewHorizons/Handlers/TitleSceneHandler.cs | 14 ++++++++++++++ NewHorizons/Main.cs | 2 ++ 4 files changed, 40 insertions(+) create mode 100644 NewHorizons/External/Configs/MainMenuConfig.cs diff --git a/NewHorizons/External/Configs/AddonConfig.cs b/NewHorizons/External/Configs/AddonConfig.cs index 66674575..d93d7b90 100644 --- a/NewHorizons/External/Configs/AddonConfig.cs +++ b/NewHorizons/External/Configs/AddonConfig.cs @@ -44,5 +44,10 @@ namespace NewHorizons.External.Configs /// The dimensions of the Echoes of the Eye subtitle is 669 x 67, so aim for that size /// public string subtitlePath = "subtitle.png"; + + /// + /// + /// + public MainMenuConfig mainMenuConfig; } } diff --git a/NewHorizons/External/Configs/MainMenuConfig.cs b/NewHorizons/External/Configs/MainMenuConfig.cs new file mode 100644 index 00000000..521a3275 --- /dev/null +++ b/NewHorizons/External/Configs/MainMenuConfig.cs @@ -0,0 +1,19 @@ +using NewHorizons.External.SerializableData; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NewHorizons.External.Configs +{ + [JsonObject] + public class MainMenuConfig + { + /// + /// Colour of the text on the main menu + /// + public MColor menuTextTint; + } +} diff --git a/NewHorizons/Handlers/TitleSceneHandler.cs b/NewHorizons/Handlers/TitleSceneHandler.cs index c0c3924c..c6e9ca8c 100644 --- a/NewHorizons/Handlers/TitleSceneHandler.cs +++ b/NewHorizons/Handlers/TitleSceneHandler.cs @@ -1,11 +1,13 @@ using NewHorizons.Builder.Body; using NewHorizons.External; +using NewHorizons.External.Configs; using NewHorizons.External.Modules; using NewHorizons.Utility; using NewHorizons.Utility.OWML; using System.Collections.Generic; using System.Linq; using UnityEngine; +using UnityEngine.UI; namespace NewHorizons.Handlers { @@ -25,6 +27,18 @@ namespace NewHorizons.Handlers subtitleContainer.AddComponent(); } + public static void SetUp(MainMenuConfig config) + { + if (config.menuTextTint != null) + { + var buttons = GameObject.FindObjectOfType()._mainMenu.GetComponentsInChildren(); + foreach (var button in buttons) + { + button.color = config.menuTextTint.ToColor(); + } + } + } + public static void DisplayBodyOnTitleScreen(List bodies) { // Try loading one planet why not diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index c964744f..42cc70b0 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -430,6 +430,8 @@ namespace NewHorizons NHLogger.LogError($"Failed to make title screen bodies: {e}"); } TitleSceneHandler.InitSubtitles(); + + TitleSceneHandler.SetUp(new MainMenuConfig() { menuTextTint = new External.SerializableData.MColor(128, 128, 255) }); } // EOTU fixes