Store ambient sound entities on a component tree. (#13110)
This commit is contained in:
31
Content.Client/Audio/AmbientSoundTreeSystem.cs
Normal file
31
Content.Client/Audio/AmbientSoundTreeSystem.cs
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user