diff --git a/src/Data/Config/BAUConfigs.cs b/src/Data/Config/BAUConfigs.cs index 1adcdaa..45b7f7d 100644 --- a/src/Data/Config/BAUConfigs.cs +++ b/src/Data/Config/BAUConfigs.cs @@ -66,7 +66,7 @@ internal static class BAUConfigs /// /// Gets the configuration entry for vent color groups setting. /// - internal static BAUConfigEntry? VentColorGroups { get; } = new("Better Options", "VentColorGroups", false); + internal static BAUConfigEntry? VentColorGroups { get; } = new("Better Options", "VentColorGroups", true); /// /// Gets the configuration entry for command prefix setting. diff --git a/src/Modules/VentGroups.cs b/src/Modules/VentGroups.cs index 2a844c3..bebb055 100644 --- a/src/Modules/VentGroups.cs +++ b/src/Modules/VentGroups.cs @@ -1,4 +1,5 @@ -using UnityEngine; +using BetterAmongUs.Data.Config; +using UnityEngine; namespace BetterAmongUs.Modules; @@ -109,6 +110,11 @@ internal static class VentGroups /// internal static Color GetVentGroupColor(Vent vent) { + if (!BAUConfigs.VentColorGroups.Value) + { + return Color.gray; + } + if (ventToLowestId.TryGetValue(vent.Id, out int lowestId)) { return groupColors[lowestId]; diff --git a/src/Patches/Client/OptionsMenuBehaviourPatch.cs b/src/Patches/Client/OptionsMenuBehaviourPatch.cs index 7170627..51042a1 100644 --- a/src/Patches/Client/OptionsMenuBehaviourPatch.cs +++ b/src/Patches/Client/OptionsMenuBehaviourPatch.cs @@ -51,6 +51,25 @@ internal static class OptionsMenuBehaviourPatch ClientOptionItem.CreateToggle(Translator.GetString("BetterOption.UnlockFPS"), BAUConfigs.UnlockFPS, 1, __instance, UpdateFrameRate); ClientOptionItem.CreateToggle(Translator.GetString("BetterOption.ShowFPS"), BAUConfigs.ShowFPS, 1, __instance); + ClientOptionItem.CreateToggle(Translator.GetString("BetterOption.VentColorGroups"), BAUConfigs.VentColorGroups, 2, __instance, toggleCheck: () => + { + bool cannotToggle = GameState.IsInGame; + if (cannotToggle) + { + BetterNotificationManager.Notify($"Unable to toggle while in gameplay!", 2.5f); + } + return !cannotToggle; + }); + ClientOptionItem.CreateToggle(Translator.GetString("BetterOption.MinimapIcons"), BAUConfigs.MinimapIcons, 2, __instance, toggleCheck: () => + { + bool cannotToggle = GameState.IsInGame; + if (cannotToggle) + { + BetterNotificationManager.Notify($"Unable to toggle while in gameplay!", 2.5f); + } + return !cannotToggle; + }); + // Button options (no toggle) if (!ModInfo.Starlight) { diff --git a/src/Patches/Gameplay/Ship/VentPatch.cs b/src/Patches/Gameplay/Ship/VentPatch.cs index 24af5f1..b6c8ff1 100644 --- a/src/Patches/Gameplay/Ship/VentPatch.cs +++ b/src/Patches/Gameplay/Ship/VentPatch.cs @@ -1,4 +1,5 @@ -using BetterAmongUs.Modules; +using BetterAmongUs.Data.Config; +using BetterAmongUs.Modules; using BetterAmongUs.Modules.Support; using HarmonyLib; using UnityEngine; @@ -13,7 +14,7 @@ internal static class VentPatch private static bool Vent_SetOutline_Prefix(Vent __instance, bool on, bool mainTarget) { // Skip if vent color groups are disabled - use vanilla behavior - if (BAUModdedSupportFlags.HasFlag(BAUModdedSupportFlags.Disable_VentColorGroups)) return true; + if (!BAUConfigs.VentColorGroups.Value || BAUModdedSupportFlags.HasFlag(BAUModdedSupportFlags.Disable_VentColorGroups)) return true; // Get group color for this vent and apply outline Color color = VentGroups.GetVentGroupColor(__instance); diff --git a/src/Patches/Gameplay/UI/MiniMapBehaviourPatch.cs b/src/Patches/Gameplay/UI/MiniMapBehaviourPatch.cs index a308cce..f259520 100644 --- a/src/Patches/Gameplay/UI/MiniMapBehaviourPatch.cs +++ b/src/Patches/Gameplay/UI/MiniMapBehaviourPatch.cs @@ -1,4 +1,5 @@ -using BetterAmongUs.Helpers; +using BetterAmongUs.Data.Config; +using BetterAmongUs.Helpers; using BetterAmongUs.Modules; using BetterAmongUs.Modules.Support; using BetterAmongUs.Mono; @@ -68,7 +69,7 @@ internal static class MiniMapBehaviourPatch [HarmonyPostfix] private static void MapBehaviour_Show_Postfix(MapBehaviour __instance) { - if (BAUModdedSupportFlags.HasFlag(BAUModdedSupportFlags.Disable_MinimapIcons)) return; + if (!BAUConfigs.MinimapIcons.Value || BAUModdedSupportFlags.HasFlag(BAUModdedSupportFlags.Disable_MinimapIcons)) return; // Make infected overlay buttons semi-transparent and smaller foreach (var button in __instance.infectedOverlay.allButtons) diff --git a/src/Resources/Lang/en_US.json b/src/Resources/Lang/en_US.json index b6ba2d6..fc9e3bf 100644 --- a/src/Resources/Lang/en_US.json +++ b/src/Resources/Lang/en_US.json @@ -60,6 +60,9 @@ "BetterOption.LobbyTheme": "Disable Lobby Theme", "BetterOption.UnlockFPS": "UnlockFPS", "BetterOption.ShowFPS": "ShowFPS", + "BetterOption.VentColorGroups": "Vent Color Groups", + "BetterOption.MinimapIcons": "Minimap Icons", + "BetterOption.SaveData": "Open Save Data", "BetterOption.ToVanilla": "Switch To Vanilla",