diff --git a/Content.Client/Options/UI/Tabs/AudioTab.xaml b/Content.Client/Options/UI/Tabs/AudioTab.xaml index c374af31c5..5764755bb9 100644 --- a/Content.Client/Options/UI/Tabs/AudioTab.xaml +++ b/Content.Client/Options/UI/Tabs/AudioTab.xaml @@ -19,6 +19,7 @@ + diff --git a/Content.Client/Options/UI/Tabs/AudioTab.xaml.cs b/Content.Client/Options/UI/Tabs/AudioTab.xaml.cs index 78186d446c..d57f36e74f 100644 --- a/Content.Client/Options/UI/Tabs/AudioTab.xaml.cs +++ b/Content.Client/Options/UI/Tabs/AudioTab.xaml.cs @@ -1,3 +1,4 @@ +using Content.Client.Administration.Managers; using Content.Client.Audio; using Content.Shared.CCVar; using Robust.Client.Audio; @@ -12,8 +13,9 @@ namespace Content.Client.Options.UI.Tabs; [GenerateTypedNameReferences] public sealed partial class AudioTab : Control { - [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly IAudioManager _audio = default!; + [Dependency] private readonly IClientAdminManager _admin = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; public AudioTab() { @@ -61,10 +63,30 @@ public sealed partial class AudioTab : Control Control.AddOptionCheckBox(CCVars.RestartSoundsEnabled, RestartSoundsCheckBox); Control.AddOptionCheckBox(CCVars.EventMusicEnabled, EventMusicCheckBox); Control.AddOptionCheckBox(CCVars.AdminSoundsEnabled, AdminSoundsCheckBox); + Control.AddOptionCheckBox(CCVars.BwoinkSoundEnabled, BwoinkSoundCheckBox); Control.Initialize(); } + protected override void EnteredTree() + { + base.EnteredTree(); + _admin.AdminStatusUpdated += UpdateAdminButtonsVisibility; + UpdateAdminButtonsVisibility(); + } + + protected override void ExitedTree() + { + base.ExitedTree(); + _admin.AdminStatusUpdated -= UpdateAdminButtonsVisibility; + } + + + private void UpdateAdminButtonsVisibility() + { + BwoinkSoundCheckBox.Visible = _admin.IsActive(); + } + private void OnMasterVolumeSliderChanged(float value) { // TODO: I was thinking of giving OptionsTabControlRow a flag to "set CVar immediately", but I'm deferring that diff --git a/Content.Client/UserInterface/Systems/Bwoink/AHelpUIController.cs b/Content.Client/UserInterface/Systems/Bwoink/AHelpUIController.cs index 9f75b5cecd..445bcc8601 100644 --- a/Content.Client/UserInterface/Systems/Bwoink/AHelpUIController.cs +++ b/Content.Client/UserInterface/Systems/Bwoink/AHelpUIController.cs @@ -45,6 +45,7 @@ public sealed class AHelpUIController: UIController, IOnSystemChanged _aHelpSound = v, true); + _config.OnValueChanged(CCVars.BwoinkSoundEnabled, v => _bwoinkSoundEnabled = v, true); } public void UnloadButton() @@ -135,7 +137,7 @@ public sealed class AHelpUIController: UIController, IOnSystemChanged AdminSoundsEnabled = CVarDef.Create("audio.admin_sounds_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); + public static readonly CVarDef BwoinkSoundEnabled = + CVarDef.Create("audio.bwoink_sound_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); + public static readonly CVarDef AdminChatSoundPath = CVarDef.Create("audio.admin_chat_sound_path", "/Audio/Items/pop.ogg", diff --git a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl index bcc5a994b8..c13dbb516f 100644 --- a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl +++ b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl @@ -37,6 +37,7 @@ ui-options-lobby-music = Lobby & Round-end Music ui-options-restart-sounds = Round Restart Sounds ui-options-event-music = Event Music ui-options-admin-sounds = Play Admin Sounds +ui-options-bwoink-sound = Play AHelp Notification Sound ui-options-volume-label = Volume ## Graphics menu