using Content.Shared.Shuttles.Components; using Robust.Shared.Physics; using Robust.Shared.Physics.Dynamics; using Robust.Shared.Physics.Events; namespace Content.Server.Shuttles.Systems; /// /// Deletes anything with that has a cross-grid collision with a static body. /// public sealed class SpaceGarbageSystem : EntitySystem { private EntityQuery _xformQuery; public override void Initialize() { base.Initialize(); _xformQuery = GetEntityQuery(); SubscribeLocalEvent(OnCollide); } private void OnCollide(EntityUid uid, SpaceGarbageComponent component, ref StartCollideEvent args) { if (args.OtherBody.BodyType != BodyType.Static) return; var ourXform = _xformQuery.GetComponent(uid); var otherXform = _xformQuery.GetComponent(args.OtherEntity); if (ourXform.GridUid == otherXform.GridUid) return; QueueDel(uid); } }