Store ambient sound entities on a component tree. (#13110)

This commit is contained in:
Leon Friedrich
2022-12-30 17:10:14 +13:00
committed by GitHub
parent 860ff9ee38
commit ae58bb1f1b
6 changed files with 145 additions and 63 deletions

View File

@@ -0,0 +1,31 @@
using Content.Shared.Audio;
using Robust.Shared.ComponentTrees;
using Robust.Shared.Physics;
namespace Content.Client.Audio;
public sealed class AmbientSoundTreeSystem : ComponentTreeSystem<AmbientSoundTreeComponent, AmbientSoundComponent>
{
#region Component Tree Overrides
protected override bool DoFrameUpdate => false;
protected override bool DoTickUpdate => true;
protected override int InitialCapacity => 256;
protected override bool Recursive => true;
protected override Box2 ExtractAabb(in ComponentTreeEntry<AmbientSoundComponent> entry, Vector2 pos, Angle rot)
=> new Box2(pos - entry.Component.Range, pos + entry.Component.Range);
protected override Box2 ExtractAabb(in ComponentTreeEntry<AmbientSoundComponent> entry)
{
if (entry.Component.TreeUid == null)
return default;
var pos = XformSystem.GetRelativePosition(
entry.Transform,
entry.Component.TreeUid.Value,
GetEntityQuery<TransformComponent>());
return ExtractAabb(in entry, pos, default);
}
#endregion
}