diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c538ca..093d216 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Added a setting to hide the Hysteresis tab from the game. + ### Changed - Removed farming hysteresis text from inspect strings as well as the "configure hysteresis" gizmo and related dialog. Both concepts were unified into an inspect tab that is now added instead. diff --git a/Common/Defs/MainTabDefs/MainTabWindow_Hysteresis.xml b/Common/Defs/MainTabDefs/MainTabWindow_Hysteresis.xml index 4add79f..c814009 100644 --- a/Common/Defs/MainTabDefs/MainTabWindow_Hysteresis.xml +++ b/Common/Defs/MainTabDefs/MainTabWindow_Hysteresis.xml @@ -7,6 +7,7 @@ hysteresis.description FarmingHysteresis.MainTabWindow_Hysteresis 20 + FarmingHysteresis.MainButtonWorker_Hysteresis diff --git a/Common/Languages/English/Keyed/FarmingHysteresis.xml b/Common/Languages/English/Keyed/FarmingHysteresis.xml index 79647f5..3b3e6d6 100644 --- a/Common/Languages/English/Keyed/FarmingHysteresis.xml +++ b/Common/Languages/English/Keyed/FarmingHysteresis.xml @@ -14,6 +14,8 @@ Hysteresis mode Show old command buttons In version 0.6, the mod switched from using command buttons to a dialog for configuring hysteresis parameters. Enable this setting to also show the old command buttons. + Show hysteresis tab + Disabling this setting hides the Hysteresis tab from the game.\n\nWhile it is currently only used as a convenient location to configure global hysteresis values in one place, there are plans to add more features to this tab later. Hiding it will thus prevent access to these features and is generally not recommended. Configure hysteresis parameters Configure hysteresis parameters such as the upper and lower bounds. diff --git a/Common/Languages/Norwegian/Keyed/FarmingHysteresis.xml b/Common/Languages/Norwegian/Keyed/FarmingHysteresis.xml index 28352f1..fbd0c06 100644 --- a/Common/Languages/Norwegian/Keyed/FarmingHysteresis.xml +++ b/Common/Languages/Norwegian/Keyed/FarmingHysteresis.xml @@ -14,6 +14,8 @@ Hysteresemodus Vis gamle kommandoknapper I versjon 0.6 gikk moden fra å bruke kommandoknapper til å bruke en dialog for å stille inn hystereseparametere. Skru på dette valget for å også vise de gamle kommandoknappene. + Vis hysterese-fane + Hysterese-fanen skjules fra spillet dersom dette valget skrus av.\n\nSelv om denne fanen kun brukes til å konfigurere globale hysteresegrenser nå, er det planer om å legge til flere funksjoner til denne fanen over tid. Det å skjule den vil derfor kunne hindre tilgang til disse funksjonene og er generelt ikke å anbefale. Konfigurer hystereseparametere Konfigurer hystereseparametere som f.eks. øvre og nedre grensenivå. diff --git a/Source/FarmingHysteresis/Core/Settings.cs b/Source/FarmingHysteresis/Core/Settings.cs index fa793ed..9a25c16 100644 --- a/Source/FarmingHysteresis/Core/Settings.cs +++ b/Source/FarmingHysteresis/Core/Settings.cs @@ -16,6 +16,7 @@ public class Settings : ModSettings private static bool _useGlobalValuesByDefault = true; private static HysteresisMode _hysteresisMode = HysteresisMode.Sowing; private static bool _showOldCommands = false; + private static bool _showHysteresisMainTab = true; internal static int DefaultHysteresisLowerBound { get => _defaultHysteresisLowerBound; set => _defaultHysteresisLowerBound = value; } internal static int DefaultHysteresisUpperBound { get => _defaultHysteresisUpperBound; set => _defaultHysteresisUpperBound = value; } @@ -23,6 +24,7 @@ public class Settings : ModSettings internal static bool UseGlobalValuesByDefault { get => _useGlobalValuesByDefault; set => _useGlobalValuesByDefault = value; } internal static HysteresisMode HysteresisMode { get => _hysteresisMode; set => _hysteresisMode = value; } internal static bool ShowOldCommands { get => _showOldCommands; set => _showOldCommands = value; } + internal static bool ShowHysteresisMainTab { get => _showHysteresisMainTab; set => _showHysteresisMainTab = value; } internal static bool ControlSowing => _hysteresisMode == HysteresisMode.Sowing || _hysteresisMode == HysteresisMode.SowingAndHarvesting; internal static bool ControlHarvesting => _hysteresisMode == HysteresisMode.Harvesting || _hysteresisMode == HysteresisMode.SowingAndHarvesting; @@ -37,6 +39,7 @@ public override void ExposeData() Scribe_Values.Look(ref _useGlobalValuesByDefault, "useGlobalValuesByDefault", true); Scribe_Values.Look(ref _hysteresisMode, "hysteresisMode", HysteresisMode.Sowing); Scribe_Values.Look(ref _showOldCommands, "showOldCommands", false); + Scribe_Values.Look(ref _showHysteresisMainTab, "showHysteresisMainTab", true); } public static void DoSettingsWindowContents(Rect inRect) @@ -50,6 +53,10 @@ public static void DoSettingsWindowContents(Rect inRect) "FarmingHysteresis.ShowOldCommands".Translate(), ref _showOldCommands, "FarmingHysteresis.ShowOldCommandsTooltip".Translate()); + listingStandard.CheckboxLabeled( + "FarmingHysteresis.ShowHysteresisMainTab".Translate(), + ref _showHysteresisMainTab, + "FarmingHysteresis.ShowHysteresisMainTabTooltip".Translate()); #if v1_3 if (listingStandard.ButtonTextLabeled( @@ -64,16 +71,18 @@ public static void DoSettingsWindowContents(Rect inRect) TextAnchor.MiddleLeft)) { #endif - List list = new(); - list.Add(new FloatMenuOption( - "FarmingHysteresis.Control".Translate("FarmingHysteresis.Sowing".Translate()), - () => _hysteresisMode = HysteresisMode.Sowing)); - list.Add(new FloatMenuOption( - "FarmingHysteresis.Control".Translate("FarmingHysteresis.Harvesting".Translate()), - () => _hysteresisMode = HysteresisMode.Harvesting)); - list.Add(new FloatMenuOption( - "FarmingHysteresis.Control".Translate("FarmingHysteresis.SowingAndHarvesting".Translate()), - () => _hysteresisMode = HysteresisMode.SowingAndHarvesting)); + List list = new() + { + new FloatMenuOption( + "FarmingHysteresis.Control".Translate("FarmingHysteresis.Sowing".Translate()), + () => _hysteresisMode = HysteresisMode.Sowing), + new FloatMenuOption( + "FarmingHysteresis.Control".Translate("FarmingHysteresis.Harvesting".Translate()), + () => _hysteresisMode = HysteresisMode.Harvesting), + new FloatMenuOption( + "FarmingHysteresis.Control".Translate("FarmingHysteresis.SowingAndHarvesting".Translate()), + () => _hysteresisMode = HysteresisMode.SowingAndHarvesting) + }; Find.WindowStack.Add(new FloatMenu(list)); } diff --git a/Source/FarmingHysteresis/MainTabWindow_Hysteresis.cs b/Source/FarmingHysteresis/MainTabWindow_Hysteresis.cs index 6d60e11..d017e9c 100644 --- a/Source/FarmingHysteresis/MainTabWindow_Hysteresis.cs +++ b/Source/FarmingHysteresis/MainTabWindow_Hysteresis.cs @@ -7,6 +7,11 @@ namespace FarmingHysteresis { + public class MainButtonWorker_Hysteresis : MainButtonWorker_ToggleTab + { + public override bool Visible => Settings.ShowHysteresisMainTab; + } + public class MainTabWindow_Hysteresis : MainTabWindow { private enum HysteresisTab : byte