From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 25 Feb 2023 17:19:31 +0000 (+1100) Subject: Don't play ambience for paused ents (#14269) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=9c03ed805c50ee993ad3550a4627f11cf11ceba4;p=space-station-14.git Don't play ambience for paused ents (#14269) --- diff --git a/Content.Client/Audio/AmbientSoundSystem.cs b/Content.Client/Audio/AmbientSoundSystem.cs index 59f4108de9..a26b7cc515 100644 --- a/Content.Client/Audio/AmbientSoundSystem.cs +++ b/Content.Client/Audio/AmbientSoundSystem.cs @@ -41,7 +41,7 @@ namespace Content.Client.Audio private float _ambienceVolume = 0.0f; private static AudioParams _params = AudioParams.Default.WithVariation(0.01f).WithLoop(true).WithAttenuation(Attenuation.LinearDistance); - + /// /// How many times we can be playing 1 particular sound at once. /// @@ -221,13 +221,18 @@ namespace Content.Client.Audio private void ProcessNearbyAmbience(TransformComponent playerXform) { var query = GetEntityQuery(); + var metaQuery = GetEntityQuery(); var mapPos = playerXform.MapPosition; // Remove out-of-range ambiences foreach (var (comp, sound) in _playingSounds) { var entity = comp.Owner; - if (comp.Enabled && query.TryGetComponent(entity, out var xform) && xform.MapID == playerXform.MapID) + + if (comp.Enabled && + query.TryGetComponent(entity, out var xform) && + xform.MapID == playerXform.MapID && + !metaQuery.GetComponent(entity).EntityPaused) { var distance = (xform.ParentUid == playerXform.ParentUid) ? xform.LocalPosition - playerXform.LocalPosition @@ -265,7 +270,10 @@ namespace Content.Client.Audio foreach (var (_, comp) in sources) { - if (_playingSounds.ContainsKey(comp)) + var uid = comp.Owner; + + if (_playingSounds.ContainsKey(comp) || + metaQuery.GetComponent(uid).EntityPaused) continue; var audioParams = _params @@ -274,7 +282,7 @@ namespace Content.Client.Audio .WithPlayOffset(_random.NextFloat(0.0f, 100.0f)) .WithMaxDistance(comp.Range); - var stream = _audio.PlayPvs(comp.Sound, comp.Owner, audioParams); + var stream = _audio.PlayPvs(comp.Sound, uid, audioParams); if (stream == null) continue;