diff --git a/MiraAPI/GameModes/CustomGameModeManager.cs b/MiraAPI/GameModes/CustomGameModeManager.cs index 919f32b..bc41432 100644 --- a/MiraAPI/GameModes/CustomGameModeManager.cs +++ b/MiraAPI/GameModes/CustomGameModeManager.cs @@ -97,4 +97,4 @@ public static class CustomGameModeManager ActiveMode = IdToModeMap[0]; Logger.Warning($"Unable to find game mode of id {id}!"); } -} \ No newline at end of file +} diff --git a/MiraAPI/GameModes/GameModeOption.cs b/MiraAPI/GameModes/GameModeOption.cs index d999cdd..86de073 100644 --- a/MiraAPI/GameModes/GameModeOption.cs +++ b/MiraAPI/GameModes/GameModeOption.cs @@ -62,12 +62,12 @@ public static class GameModeOption Values.Add(opt, CustomStringName.CreateAndRegister(opt)); } - private static List VanillaCategories = new(); - private static List VanillaOptions = new(); - private static List BaseCategories = new(); - private static List BaseOptions = new(); - private static List ModeCategories = new(); - private static List ModeOptions = new(); + private static readonly List VanillaCategories = new(); + private static readonly List VanillaOptions = new(); + private static readonly List BaseCategories = new(); + private static readonly List BaseOptions = new(); + private static readonly List ModeCategories = new(); + private static readonly List ModeOptions = new(); [HarmonyPatch(typeof(GameOptionsMenu), nameof(GameOptionsMenu.CreateSettings))] [HarmonyPostfix] private static void CreateSettingsPatch(GameOptionsMenu __instance) @@ -76,13 +76,15 @@ public static class GameModeOption { return; } + + var num = 0.713f; + ModeCategories.Clear(); ModeOptions.Clear(); VanillaCategories.Clear(); VanillaOptions.Clear(); BaseCategories.Clear(); BaseOptions.Clear(); - float num = 0.713f; foreach (var category in __instance.settingsContainer.GetComponentsInChildren()) { if (category) @@ -161,7 +163,7 @@ public static class GameModeOption } var showOpts = mode.ShowNormalGameSettings; - var num = 0.083f; + var num = 0.713f - (0.63f * BaseCategories.Count) - (0.45f * BaseOptions.Count); foreach (var category in VanillaCategories) { category.gameObject.SetActive(showOpts); @@ -181,7 +183,8 @@ public static class GameModeOption obj.gameObject.SetActive(true); instance.Children.Add(obj); } - instance.scrollBar.SetYBoundsMax(instance.scrollBar.GetYBounds().max + 1); + num -= 0.63f * VanillaCategories.Count; + num -= 0.45f * VanillaOptions.Count; } else { @@ -189,21 +192,22 @@ public static class GameModeOption { obj.gameObject.SetActive(false); } + } + + if (filteredGroups.Any()) + { + num += 0.225f; foreach (var group in filteredGroups) { GameOptionsMenuPatch.UpdateGroup(group, ref num); } - - instance.scrollBar.SetYBoundsMax(-num - 1.65f); } - foreach (var option in ModeOptions) + instance.ControllerSelectable.Clear(); + foreach (var obj in instance.scrollBar.GetComponentsInChildren()) { - option.gameObject.transform.localPosition += new Vector3(0, -0.67f, 0); - } - foreach (var header in ModeCategories) - { - header.gameObject.transform.localPosition += new Vector3(0, -0.67f, 0); + instance.ControllerSelectable.Add(obj); } + instance.scrollBar.SetYBoundsMax(-num - 1.65f); } [HarmonyPatch(typeof(GameOptionsMenu), nameof(GameOptionsMenu.ValueChanged))] diff --git a/MiraAPI/GameOptions/AbstractOptionGroup.cs b/MiraAPI/GameOptions/AbstractOptionGroup.cs index 51e18bd..dfd8f49 100644 --- a/MiraAPI/GameOptions/AbstractOptionGroup.cs +++ b/MiraAPI/GameOptions/AbstractOptionGroup.cs @@ -96,5 +96,5 @@ public enum MenuCategory Roles, Modifiers, CustomOne, - CustomTwo + CustomTwo, } diff --git a/MiraAPI/Keybinds/BaseKeybind.cs b/MiraAPI/Keybinds/BaseKeybind.cs index 525ffef..e9407ed 100644 --- a/MiraAPI/Keybinds/BaseKeybind.cs +++ b/MiraAPI/Keybinds/BaseKeybind.cs @@ -14,7 +14,7 @@ public class BaseKeybind public InputAction? RewiredInputAction { get; internal set; } /// - /// Gets the unique identifier for this keybind. Used in Rewired. + /// Gets or sets the unique identifier for this keybind. Used in Rewired. /// public string Id { get; protected set; } diff --git a/MiraAPI/Patches/LocalSettings/OptionsMenuPatches.cs b/MiraAPI/Patches/LocalSettings/OptionsMenuPatches.cs index 7434aae..dbbe851 100644 --- a/MiraAPI/Patches/LocalSettings/OptionsMenuPatches.cs +++ b/MiraAPI/Patches/LocalSettings/OptionsMenuPatches.cs @@ -15,7 +15,7 @@ namespace MiraAPI.Patches.LocalSettings; public static class OptionsMenuPatches { internal static OptionsMenuBehaviour? Instance { get; private set; } - internal static BoxCollider2D MaskCollider; + internal static BoxCollider2D MaskCollider = null!; private static SpriteRenderer? background; private static int currentPage = 1; diff --git a/MiraAPI/Patches/Menu/NameplatesTabPatches.cs b/MiraAPI/Patches/Menu/NameplatesTabPatches.cs index 1526cce..bc6f01f 100644 --- a/MiraAPI/Patches/Menu/NameplatesTabPatches.cs +++ b/MiraAPI/Patches/Menu/NameplatesTabPatches.cs @@ -2,11 +2,11 @@ using HarmonyLib; using Innersloth.Assets; using MiraAPI.Utilities; -using Reactor.Utilities.Extensions; using System; using System.Collections.Generic; using System.Linq; using MiraAPI.Utilities.Assets; +using Reactor.Utilities.Extensions; using TMPro; using UnityEngine; using Object = UnityEngine.Object; diff --git a/MiraAPI/Patches/Menu/SkinsTabPatches.cs b/MiraAPI/Patches/Menu/SkinsTabPatches.cs index 8e99bf2..2001154 100644 --- a/MiraAPI/Patches/Menu/SkinsTabPatches.cs +++ b/MiraAPI/Patches/Menu/SkinsTabPatches.cs @@ -1,12 +1,12 @@ using AmongUs.Data; using HarmonyLib; using MiraAPI.Utilities; -using Reactor.Utilities.Extensions; using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using MiraAPI.Utilities.Assets; +using Reactor.Utilities.Extensions; using TMPro; using UnityEngine; using Object = UnityEngine.Object; diff --git a/MiraAPI/Patches/Menu/VisorsTabPatches.cs b/MiraAPI/Patches/Menu/VisorsTabPatches.cs index c543a94..070c7ea 100644 --- a/MiraAPI/Patches/Menu/VisorsTabPatches.cs +++ b/MiraAPI/Patches/Menu/VisorsTabPatches.cs @@ -1,11 +1,11 @@ using AmongUs.Data; using HarmonyLib; using MiraAPI.Utilities; -using Reactor.Utilities.Extensions; using System; using System.Collections.Generic; using System.Linq; using MiraAPI.Utilities.Assets; +using Reactor.Utilities.Extensions; using TMPro; using UnityEngine; using Object = UnityEngine.Object; diff --git a/MiraAPI/PluginLoading/MiraPluginManager.cs b/MiraAPI/PluginLoading/MiraPluginManager.cs index 86247a1..5d16945 100644 --- a/MiraAPI/PluginLoading/MiraPluginManager.cs +++ b/MiraAPI/PluginLoading/MiraPluginManager.cs @@ -39,8 +39,8 @@ public sealed class MiraPluginManager internal Dictionary> QueuedRoleRegistrations { get; } = []; internal static MiraPluginManager Instance { get; private set; } = new(); - public static ConfigFile MiraApiConfig { get; private set; } - public static MiraPluginInfo MiraApiPluginInfo { get; private set; } + public static ConfigFile MiraApiConfig { get; private set; } = null!; + public static MiraPluginInfo MiraApiPluginInfo { get; private set; } = null!; internal void Initialize(BasePlugin miraApiPlugin, IMiraPlugin apiPlugin) { diff --git a/MiraAPI/Roles/CustomRoleConfiguration.cs b/MiraAPI/Roles/CustomRoleConfiguration.cs index 2d88141..e6f79a6 100644 --- a/MiraAPI/Roles/CustomRoleConfiguration.cs +++ b/MiraAPI/Roles/CustomRoleConfiguration.cs @@ -1,7 +1,7 @@ using System; using AmongUs.GameOptions; -using MiraAPI.GameModes; using Il2CppInterop.Runtime.Attributes; +using MiraAPI.GameModes; using MiraAPI.Patches.Freeplay; using MiraAPI.Utilities.Assets; using UnityEngine;