1
0

AmbientSoundTreeSystem.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. using System.Numerics;
  2. using Content.Shared.Audio;
  3. using Robust.Shared.ComponentTrees;
  4. using Robust.Shared.Physics;
  5. namespace Content.Client.Audio;
  6. public sealed class AmbientSoundTreeSystem : ComponentTreeSystem<AmbientSoundTreeComponent, AmbientSoundComponent>
  7. {
  8. #region Component Tree Overrides
  9. protected override bool DoFrameUpdate => false;
  10. protected override bool DoTickUpdate => true;
  11. protected override int InitialCapacity => 256;
  12. protected override bool Recursive => true;
  13. protected override Box2 ExtractAabb(in ComponentTreeEntry<AmbientSoundComponent> entry, Vector2 pos, Angle rot)
  14. => new Box2(pos - entry.Component.RangeVector, pos + entry.Component.RangeVector);
  15. protected override Box2 ExtractAabb(in ComponentTreeEntry<AmbientSoundComponent> entry)
  16. {
  17. if (entry.Component.TreeUid == null)
  18. return default;
  19. var pos = XformSystem.GetRelativePosition(
  20. entry.Transform,
  21. entry.Component.TreeUid.Value,
  22. GetEntityQuery<TransformComponent>());
  23. return ExtractAabb(in entry, pos, default);
  24. }
  25. #endregion
  26. }