diff --git a/NewHorizons/External/Configs/TitleScreenConfig.cs b/NewHorizons/External/Configs/TitleScreenConfig.cs index 5451c003..575b29c6 100644 --- a/NewHorizons/External/Configs/TitleScreenConfig.cs +++ b/NewHorizons/External/Configs/TitleScreenConfig.cs @@ -8,6 +8,15 @@ namespace NewHorizons.External.Configs { [JsonObject] public class TitleScreenConfig + { + /// + /// Create title screens + /// + public TitleScreenInfo[] titleScreens; + } + + [JsonObject] + public class TitleScreenInfo { /// /// Colour of the text on the main menu diff --git a/NewHorizons/Handlers/TitleSceneHandler.cs b/NewHorizons/Handlers/TitleSceneHandler.cs index e3fe01a7..ca8492c7 100644 --- a/NewHorizons/Handlers/TitleSceneHandler.cs +++ b/NewHorizons/Handlers/TitleSceneHandler.cs @@ -119,7 +119,7 @@ namespace NewHorizons.Handlers subtitleContainer.AddComponent(); } - public static void BuildConfig(IModBehaviour mod, TitleScreenConfig config) + public static void BuildConfig(IModBehaviour mod, TitleScreenInfo config) { if (config.menuTextTint != null) { @@ -436,7 +436,7 @@ namespace NewHorizons.Handlers TitleScreenBuilders[mod].Add(builder); } - public static void RegisterBuilder(IModBehaviour mod, TitleScreenConfig config) + public static void RegisterBuilder(IModBehaviour mod, TitleScreenInfo config) => RegisterBuilder(mod, new TitleScreenConfigBuilder(mod, config)); @@ -522,9 +522,9 @@ namespace NewHorizons.Handlers internal class TitleScreenConfigBuilder : ITitleScreenBuilder { public IModBehaviour mod; - public TitleScreenConfig config; + public TitleScreenInfo config; - public TitleScreenConfigBuilder(IModBehaviour mod, TitleScreenConfig config) + public TitleScreenConfigBuilder(IModBehaviour mod, TitleScreenInfo config) { this.mod = mod; this.config = config; diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 8569da89..c6bf6cd9 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -860,6 +860,10 @@ namespace NewHorizons } TitleScreenConfigs[mod] = titleScreenConfig; + foreach (var info in titleScreenConfig.titleScreens) + { + TitleSceneHandler.RegisterBuilder(mod, info); + } } private void LoadTranslations(string folder, IModBehaviour mod)