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
}