EntityQuery for ambient sounds (#8010)

This commit is contained in:
metalgearsloth
2022-05-08 15:01:26 +10:00
committed by GitHub
parent d54f71712d
commit d42a9643d1

View File

@@ -135,12 +135,14 @@ namespace Content.Client.Audio
{
//TODO: Make this produce a hashset of nearby entities again.
var sourceDict = new Dictionary<string, List<AmbientSoundComponent>>(16);
var ambientQuery = GetEntityQuery<AmbientSoundComponent>();
var xformQuery = GetEntityQuery<TransformComponent>();
foreach (var entity in _lookup.GetEntitiesInRange(coordinates, _maxAmbientRange + RangeBuffer, LookupFlags.Anchored | LookupFlags.Approximate))
{
if (!EntityManager.TryGetComponent(entity, out AmbientSoundComponent? ambientComp) ||
if (!ambientQuery.TryGetComponent(entity, out var ambientComp) ||
!ambientComp.Enabled ||
!EntityManager.GetComponent<TransformComponent>(entity).Coordinates.TryDistance(EntityManager, coordinates, out var range) ||
!xformQuery.GetComponent(entity).Coordinates.TryDistance(EntityManager, coordinates, out var range) ||
range > ambientComp.Range)
{
continue;