namespace Content.Shared.Trigger;
///
/// Raised whenever something is Triggered on the entity.
///
/// The entity that activated the trigger.
///
/// Allows to have multiple independent triggers on the same entity.
/// Setting this to null will activate all triggers.
///
/// Marks the event as handled if at least one trigger effect was activated.
[ByRefEvent]
public record struct TriggerEvent(EntityUid? User = null, string? Key = null, bool Handled = false);
///
/// Raised before a trigger is activated.
/// Cancelling prevents it from triggering.
///
/// The entity that activated the trigger.
///
/// Allows to have multiple independent triggers on the same entity.
/// Setting this to null will activate all triggers.
///
/// Marks the event as handled if at least one trigger effect was activated.
[ByRefEvent]
public record struct AttemptTriggerEvent(EntityUid? User, string? Key = null, bool Cancelled = false);
///
/// Raised when a timer trigger becomes active.
///
/// The entity that activated the trigger.
[ByRefEvent]
public readonly record struct ActiveTimerTriggerEvent(EntityUid? User);