namespace Content.Shared.Destructible; public abstract class SharedDestructibleSystem : EntitySystem { /// /// Force entity to be destroyed and deleted. /// public bool DestroyEntity(EntityUid owner) { var ev = new DestructionAttemptEvent(); RaiseLocalEvent(owner, ev); if (ev.Cancelled) return false; var eventArgs = new DestructionEventArgs(); RaiseLocalEvent(owner, eventArgs); QueueDel(owner); return true; } /// /// Force entity to break. /// public void BreakEntity(EntityUid owner) { var eventArgs = new BreakageEventArgs(); RaiseLocalEvent(owner, eventArgs); } } /// /// Raised before an entity is about to be destroyed and deleted /// public sealed class DestructionAttemptEvent : CancellableEntityEventArgs { } /// /// Raised when entity is destroyed and about to be deleted. /// public sealed class DestructionEventArgs : EntityEventArgs { } /// /// Raised when entity was heavy damage and about to break. /// public sealed class BreakageEventArgs : EntityEventArgs { }