From 2856213c803bd6854a8d2d7e9d2491b206c1a9d6 Mon Sep 17 00:00:00 2001 From: theashtronaut <112137107+theashtronaut@users.noreply.github.com> Date: Fri, 4 Nov 2022 00:15:37 +0000 Subject: [PATCH] Add lobby music volume slider (#12153) --- Content.Client/Audio/BackgroundAudioSystem.cs | 19 +++++++++++++---- Content.Client/Options/UI/Tabs/AudioTab.xaml | 21 +++++++++++++++---- .../Options/UI/Tabs/AudioTab.xaml.cs | 16 +++++++++++++- Content.Shared/CCVar/CCVars.cs | 6 ++++++ .../en-US/escape-menu/ui/options-menu.ftl | 1 + 5 files changed, 54 insertions(+), 9 deletions(-) diff --git a/Content.Client/Audio/BackgroundAudioSystem.cs b/Content.Client/Audio/BackgroundAudioSystem.cs index 03b69c336a..6508767a80 100644 --- a/Content.Client/Audio/BackgroundAudioSystem.cs +++ b/Content.Client/Audio/BackgroundAudioSystem.cs @@ -31,7 +31,7 @@ public sealed class BackgroundAudioSystem : EntitySystem [Dependency] private readonly IRobustRandom _robustRandom = default!; [Dependency] private readonly IStateManager _stateManager = default!; [Dependency] private readonly IGameTiming _timing = default!; - + private readonly AudioParams _ambientParams = new(-10f, 1, "Master", 0, 0, 0, true, 0f); private readonly AudioParams _lobbyParams = new(-5f, 1, "Master", 0, 0, 0, true, 0f); @@ -70,6 +70,7 @@ public sealed class BackgroundAudioSystem : EntitySystem _configManager.OnValueChanged(CCVars.AmbienceVolume, AmbienceCVarChanged); _configManager.OnValueChanged(CCVars.LobbyMusicEnabled, LobbyMusicCVarChanged); + _configManager.OnValueChanged(CCVars.LobbyMusicVolume, LobbyMusicVolumeCVarChanged); _configManager.OnValueChanged(CCVars.StationAmbienceEnabled, StationAmbienceCVarChanged); _configManager.OnValueChanged(CCVars.SpaceAmbienceEnabled, SpaceAmbienceCVarChanged); @@ -103,6 +104,7 @@ public sealed class BackgroundAudioSystem : EntitySystem _configManager.UnsubValueChanged(CCVars.AmbienceVolume, AmbienceCVarChanged); _configManager.UnsubValueChanged(CCVars.LobbyMusicEnabled, LobbyMusicCVarChanged); + _configManager.UnsubValueChanged(CCVars.LobbyMusicVolume, LobbyMusicVolumeCVarChanged); _configManager.UnsubValueChanged(CCVars.StationAmbienceEnabled, StationAmbienceCVarChanged); _configManager.UnsubValueChanged(CCVars.SpaceAmbienceEnabled, SpaceAmbienceCVarChanged); @@ -139,7 +141,7 @@ public sealed class BackgroundAudioSystem : EntitySystem { if (_currentCollection == newAmbience) return; - + _timerCancelTokenSource.Cancel(); _currentCollection = newAmbience; _timerCancelTokenSource = new CancellationTokenSource(); @@ -248,6 +250,14 @@ public sealed class BackgroundAudioSystem : EntitySystem } } + private void LobbyMusicVolumeCVarChanged(float volume) + { + if (_stateManager.CurrentState is LobbyState) + { + RestartLobbyMusic(); + } + } + private void LobbyMusicCVarChanged(bool musicEnabled) { if (!musicEnabled) @@ -294,7 +304,8 @@ public sealed class BackgroundAudioSystem : EntitySystem return; } - _lobbyStream = _audio.PlayGlobal(file, Filter.Local(), _lobbyParams); + _lobbyStream = _audio.PlayGlobal(file, Filter.Local(), + _lobbyParams.WithVolume(_lobbyParams.Volume + _configManager.GetCVar(CCVars.LobbyMusicVolume))); } private void EndLobbyMusic() @@ -302,4 +313,4 @@ public sealed class BackgroundAudioSystem : EntitySystem _lobbyStream?.Stop(); _lobbyStream = null; } -} \ No newline at end of file +} diff --git a/Content.Client/Options/UI/Tabs/AudioTab.xaml b/Content.Client/Options/UI/Tabs/AudioTab.xaml index d6da27f63e..ccf4d16ede 100644 --- a/Content.Client/Options/UI/Tabs/AudioTab.xaml +++ b/Content.Client/Options/UI/Tabs/AudioTab.xaml @@ -9,7 +9,7 @@ StyleClasses="LabelKeyText"/> -