using Content.Shared.DoAfter; using Content.Shared.Inventory; using Robust.Shared.Serialization; namespace Content.Shared.Forensics; [Serializable, NetSerializable] public sealed partial class ForensicScannerDoAfterEvent : SimpleDoAfterEvent { } [Serializable, NetSerializable] public sealed partial class ForensicPadDoAfterEvent : DoAfterEvent { [DataField("sample", required: true)] public string Sample = default!; private ForensicPadDoAfterEvent() { } public ForensicPadDoAfterEvent(string sample) { Sample = sample; } public override DoAfterEvent Clone() => this; } [Serializable, NetSerializable] public sealed partial class CleanForensicsDoAfterEvent : SimpleDoAfterEvent { } /// /// An event to apply DNA evidence from a donor onto some recipient. /// [ByRefEvent] public record struct TransferDnaEvent() { /// /// The entity donating the DNA. /// public EntityUid Donor; /// /// The entity receiving the DNA. /// public EntityUid Recipient; /// /// Can the DNA be cleaned off? /// public bool CanDnaBeCleaned = true; } /// /// Raised on an entity when its DNA has been changed. /// [ByRefEvent] public record struct GenerateDnaEvent() { /// /// The entity getting new DNA. /// public EntityUid Owner; /// /// The generated DNA. /// public required string DNA; } /// /// An event to check if the fingerprint is accessible. /// public sealed class TryAccessFingerprintEvent : CancellableEntityEventArgs, IInventoryRelayEvent { SlotFlags IInventoryRelayEvent.TargetSlots => SlotFlags.WITHOUT_POCKET; /// /// Entity that blocked access. /// public EntityUid? Blocker; }