Don't play ambience for paused ents (#14269)
This commit is contained in:
@@ -221,13 +221,18 @@ namespace Content.Client.Audio
|
|||||||
private void ProcessNearbyAmbience(TransformComponent playerXform)
|
private void ProcessNearbyAmbience(TransformComponent playerXform)
|
||||||
{
|
{
|
||||||
var query = GetEntityQuery<TransformComponent>();
|
var query = GetEntityQuery<TransformComponent>();
|
||||||
|
var metaQuery = GetEntityQuery<MetaDataComponent>();
|
||||||
var mapPos = playerXform.MapPosition;
|
var mapPos = playerXform.MapPosition;
|
||||||
|
|
||||||
// Remove out-of-range ambiences
|
// Remove out-of-range ambiences
|
||||||
foreach (var (comp, sound) in _playingSounds)
|
foreach (var (comp, sound) in _playingSounds)
|
||||||
{
|
{
|
||||||
var entity = comp.Owner;
|
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)
|
var distance = (xform.ParentUid == playerXform.ParentUid)
|
||||||
? xform.LocalPosition - playerXform.LocalPosition
|
? xform.LocalPosition - playerXform.LocalPosition
|
||||||
@@ -265,7 +270,10 @@ namespace Content.Client.Audio
|
|||||||
|
|
||||||
foreach (var (_, comp) in sources)
|
foreach (var (_, comp) in sources)
|
||||||
{
|
{
|
||||||
if (_playingSounds.ContainsKey(comp))
|
var uid = comp.Owner;
|
||||||
|
|
||||||
|
if (_playingSounds.ContainsKey(comp) ||
|
||||||
|
metaQuery.GetComponent(uid).EntityPaused)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var audioParams = _params
|
var audioParams = _params
|
||||||
@@ -274,7 +282,7 @@ namespace Content.Client.Audio
|
|||||||
.WithPlayOffset(_random.NextFloat(0.0f, 100.0f))
|
.WithPlayOffset(_random.NextFloat(0.0f, 100.0f))
|
||||||
.WithMaxDistance(comp.Range);
|
.WithMaxDistance(comp.Range);
|
||||||
|
|
||||||
var stream = _audio.PlayPvs(comp.Sound, comp.Owner, audioParams);
|
var stream = _audio.PlayPvs(comp.Sound, uid, audioParams);
|
||||||
if (stream == null)
|
if (stream == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user