1
0

SharedFlyBySoundSystem.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using Content.Shared.Physics;
  2. using Content.Shared.Weapons.Ranged.Components;
  3. using Robust.Shared.Audio;
  4. using Robust.Shared.GameStates;
  5. using Robust.Shared.Physics;
  6. using Robust.Shared.Physics.Collision.Shapes;
  7. using Robust.Shared.Physics.Components;
  8. using Robust.Shared.Physics.Dynamics;
  9. using Robust.Shared.Physics.Systems;
  10. using Robust.Shared.Serialization;
  11. namespace Content.Shared.Weapons.Ranged.Systems;
  12. public abstract class SharedFlyBySoundSystem : EntitySystem
  13. {
  14. [Dependency] private readonly FixtureSystem _fixtures = default!;
  15. public const string FlyByFixture = "fly-by";
  16. public override void Initialize()
  17. {
  18. base.Initialize();
  19. SubscribeLocalEvent<FlyBySoundComponent, ComponentStartup>(OnStartup);
  20. SubscribeLocalEvent<FlyBySoundComponent, ComponentShutdown>(OnShutdown);
  21. }
  22. private void OnStartup(EntityUid uid, FlyBySoundComponent component, ComponentStartup args)
  23. {
  24. if (!TryComp<PhysicsComponent>(uid, out var body))
  25. return;
  26. var shape = new PhysShapeCircle(component.Range);
  27. //_fixtures.TryCreateFixture(uid, shape, FlyByFixture, collisionLayer: (int) CollisionGroup.MobMask, hard: false, body: body);
  28. }
  29. private void OnShutdown(EntityUid uid, FlyBySoundComponent component, ComponentShutdown args)
  30. {
  31. if (!TryComp<PhysicsComponent>(uid, out var body) ||
  32. MetaData(uid).EntityLifeStage >= EntityLifeStage.Terminating)
  33. {
  34. return;
  35. }
  36. _fixtures.DestroyFixture(uid, FlyByFixture, body: body);
  37. }
  38. }