From c1978bbb883e3e940b3b768f71c5bc7ed0dbd0f2 Mon Sep 17 00:00:00 2001 From: Atony <75191600+AtonyGit@users.noreply.github.com> Date: Wed, 14 Oct 2026 23:09:08 -0500 Subject: [PATCH] Add sprites for settings in wiki --- MiraAPI/GameOptions/AbstractOptionGroup.cs | 15 ++++++++++++++- MiraAPI/Patches/RoleGuidePatches.cs | 18 +++++++++++++++++- MiraAPI/Utilities/GuideOptionsPatches.cs | 6 +++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/MiraAPI/GameOptions/AbstractOptionGroup.cs b/MiraAPI/GameOptions/AbstractOptionGroup.cs index 1478602..b62b803 100644 --- a/MiraAPI/GameOptions/AbstractOptionGroup.cs +++ b/MiraAPI/GameOptions/AbstractOptionGroup.cs @@ -3,8 +3,10 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Il2CppInterop.Runtime.Attributes; using MiraAPI.Modifiers; using MiraAPI.Roles; +using MiraAPI.Utilities.Assets; using UnityEngine; namespace MiraAPI.GameOptions; @@ -26,6 +28,12 @@ public abstract class AbstractOptionGroup /// public abstract string GroupName { get; } + /// + /// Gets the sprite of the group that is displayed in the match info guide. + /// + [HideFromIl2Cpp] + public virtual LoadableAsset Sprite => MiraAssets.IconSettings; + /// /// Gets the Optionable type of the group. /// @@ -52,7 +60,12 @@ public abstract class AbstractOptionGroup /// /// Gets a value indicating whether this group's options are shown in the Match Info Guide. /// - public virtual bool ShowInMatchInfoGuide => true; + public virtual bool ShowInMatchInfoGuide => ParentMenu is MenuCategory.Game; + + /// + /// Gets the name title of the group when it is in the match info guide. + /// + public virtual string RoleGuideTitle => GroupName; /// /// Gets the group . This is used to color the group in the options menu. diff --git a/MiraAPI/Patches/RoleGuidePatches.cs b/MiraAPI/Patches/RoleGuidePatches.cs index 44f9d46..395a16d 100644 --- a/MiraAPI/Patches/RoleGuidePatches.cs +++ b/MiraAPI/Patches/RoleGuidePatches.cs @@ -1544,7 +1544,7 @@ public static class RoleGuidePatches break; case SettingsTabIndex: _titleText.text = GetSettingsTitle(); - _titleIcon.sprite = MiraAssets.IconSettings.LoadAsset(); + _titleIcon.sprite = GetSettingsIcon(); break; case RolesTabIndex: _titleText.text = MiraLocaleManager.Get("Roles"); @@ -2103,11 +2103,27 @@ public static class RoleGuidePatches : $"{pageTitle} Settings {counter}"; } + private static Sprite GetSettingsIcon() + { + if (!_uiInitialized || _settingsSearching || _settingsPage == 0 || _settingsPages.Count == 0) + { + return MiraAssets.IconSettings; + } + + return _settingsPages[_settingsPage - 1].Sprite; + } + private static void UpdateSettingsTitle() { if (_titleText && IsSettingsTabActive) { _titleText.text = GetSettingsTitle(); + if (_titleIcon) + { + _titleIcon.sprite = GetSettingsIcon(); + + _titleIcon.SetSizeLimit(0.55f); + } } } diff --git a/MiraAPI/Utilities/GuideOptionsPatches.cs b/MiraAPI/Utilities/GuideOptionsPatches.cs index a26699f..63f5617 100644 --- a/MiraAPI/Utilities/GuideOptionsPatches.cs +++ b/MiraAPI/Utilities/GuideOptionsPatches.cs @@ -7,7 +7,9 @@ using MiraAPI.GameOptions; using MiraAPI.GameOptions.OptionTypes; using MiraAPI.PluginLoading; using MiraAPI.Translation; +using MiraAPI.Utilities.Assets; using Reactor.Utilities; +using UnityEngine; namespace MiraAPI.Utilities; @@ -22,7 +24,9 @@ internal sealed class GuideOptionPage(AbstractOptionGroup group, string modAbbre { public AbstractOptionGroup Group { get; } = group; - public string Title { get; } = group.GroupName.Translate(); + public string Title { get; } = group.RoleGuideTitle; + + public LoadableAsset Sprite { get; } = group.Sprite; public string ModAbbreviation { get; } = modAbbreviation;