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;