using Content.Shared.CCVar; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; using Robust.Shared; using Robust.Shared.Configuration; using Robust.Shared.Input; namespace Content.Client.Options.UI.Tabs { [GenerateTypedNameReferences] public sealed partial class MiscTab : Control { [Dependency] private readonly IConfigurationManager _cfg = default!; public MiscTab() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); DiscordRich.OnToggled += OnCheckBoxToggled; ShowLoocAboveHeadCheckBox.OnToggled += OnCheckBoxToggled; ShowHeldItemCheckBox.OnToggled += OnCheckBoxToggled; ShowCombatModeIndicatorsCheckBox.OnToggled += OnCheckBoxToggled; OpaqueStorageWindowCheckBox.OnToggled += OnCheckBoxToggled; FancySpeechBubblesCheckBox.OnToggled += OnCheckBoxToggled; FancyNameBackgroundsCheckBox.OnToggled += OnCheckBoxToggled; // ToggleWalk.OnToggled += OnCheckBoxToggled; StaticStorageUI.OnToggled += OnCheckBoxToggled; DiscordRich.Pressed = _cfg.GetCVar(CVars.DiscordEnabled); ShowLoocAboveHeadCheckBox.Pressed = _cfg.GetCVar(CCVars.LoocAboveHeadShow); ShowHeldItemCheckBox.Pressed = _cfg.GetCVar(CCVars.HudHeldItemShow); ShowCombatModeIndicatorsCheckBox.Pressed = _cfg.GetCVar(CCVars.CombatModeIndicatorsPointShow); OpaqueStorageWindowCheckBox.Pressed = _cfg.GetCVar(CCVars.OpaqueStorageWindow); FancySpeechBubblesCheckBox.Pressed = _cfg.GetCVar(CCVars.ChatEnableFancyBubbles); FancyNameBackgroundsCheckBox.Pressed = _cfg.GetCVar(CCVars.ChatFancyNameBackground); // ToggleWalk.Pressed = _cfg.GetCVar(CCVars.ToggleWalk); StaticStorageUI.Pressed = _cfg.GetCVar(CCVars.StaticStorageUI); ApplyButton.OnPressed += OnApplyButtonPressed; UpdateApplyButton(); } private void OnCheckBoxToggled(BaseButton.ButtonToggledEventArgs args) { UpdateApplyButton(); } private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args) { _cfg.SetCVar(CVars.DiscordEnabled, DiscordRich.Pressed); _cfg.SetCVar(CCVars.HudHeldItemShow, ShowHeldItemCheckBox.Pressed); _cfg.SetCVar(CCVars.CombatModeIndicatorsPointShow, ShowCombatModeIndicatorsCheckBox.Pressed); _cfg.SetCVar(CCVars.OpaqueStorageWindow, OpaqueStorageWindowCheckBox.Pressed); _cfg.SetCVar(CCVars.LoocAboveHeadShow, ShowLoocAboveHeadCheckBox.Pressed); _cfg.SetCVar(CCVars.ChatEnableFancyBubbles, FancySpeechBubblesCheckBox.Pressed); _cfg.SetCVar(CCVars.ChatFancyNameBackground, FancyNameBackgroundsCheckBox.Pressed); // _cfg.SetCVar(CCVars.ToggleWalk, ToggleWalk.Pressed); _cfg.SetCVar(CCVars.StaticStorageUI, StaticStorageUI.Pressed); _cfg.SaveToFile(); UpdateApplyButton(); } private void UpdateApplyButton() { var isDiscordSame = DiscordRich.Pressed == _cfg.GetCVar(CVars.DiscordEnabled); var isShowHeldItemSame = ShowHeldItemCheckBox.Pressed == _cfg.GetCVar(CCVars.HudHeldItemShow); var isCombatModeIndicatorsSame = ShowCombatModeIndicatorsCheckBox.Pressed == _cfg.GetCVar(CCVars.CombatModeIndicatorsPointShow); var isOpaqueStorageWindow = OpaqueStorageWindowCheckBox.Pressed == _cfg.GetCVar(CCVars.OpaqueStorageWindow); var isLoocShowSame = ShowLoocAboveHeadCheckBox.Pressed == _cfg.GetCVar(CCVars.LoocAboveHeadShow); var isFancyChatSame = FancySpeechBubblesCheckBox.Pressed == _cfg.GetCVar(CCVars.ChatEnableFancyBubbles); var isFancyBackgroundSame = FancyNameBackgroundsCheckBox.Pressed == _cfg.GetCVar(CCVars.ChatFancyNameBackground); // var isToggleWalkSame = ToggleWalk.Pressed == _cfg.GetCVar(CCVars.ToggleWalk); var isStaticStorageUISame = StaticStorageUI.Pressed == _cfg.GetCVar(CCVars.StaticStorageUI); ApplyButton.Disabled = isDiscordSame && isShowHeldItemSame && isCombatModeIndicatorsSame && isOpaqueStorageWindow && isLoocShowSame && isFancyChatSame && isFancyBackgroundSame && // isToggleWalkSame && isStaticStorageUISame; } } }