using Robust.Shared.Serialization; namespace Content.Shared.Gibbing.Events; /// /// Called just before we actually gib the target entity /// /// The entity being gibed /// What type of gibbing is occuring /// Containers we are allow to gib /// Containers we are allow not allowed to gib [ByRefEvent] public record struct AttemptEntityContentsGibEvent( EntityUid Target, GibContentsOption GibType, List? AllowedContainers, List? ExcludedContainers ); /// /// Called just before we actually gib the target entity /// /// The entity being gibed /// how many giblets to spawn /// What type of gibbing is occuring [ByRefEvent] public record struct AttemptEntityGibEvent(EntityUid Target, int GibletCount, GibType GibType); /// /// Called immediately after we gib the target entity /// /// The entity being gibbed /// Any entities that are spilled out (if any) [ByRefEvent] public record struct EntityGibbedEvent(EntityUid Target, List DroppedEntities); [Serializable, NetSerializable] public enum GibType : byte { Skip, Drop, Gib, } public enum GibContentsOption : byte { Skip, Drop, Gib }