using Content.Shared.Doors.Components; namespace Content.Shared.Doors { /// /// Raised when the door's State variable is changed to a new variable that it was not equal to before. /// public sealed class DoorStateChangedEvent : EntityEventArgs { public readonly DoorState State; public DoorStateChangedEvent(DoorState state) { State = state; } } /// /// Raised when the door's bolt status was changed. /// public sealed class DoorBoltsChangedEvent : EntityEventArgs { public readonly bool BoltsDown; public DoorBoltsChangedEvent(bool boltsDown) { BoltsDown = boltsDown; } } /// /// Raised when the door is determining whether it is able to open. /// Cancel to stop the door from being opened. /// public sealed class BeforeDoorOpenedEvent : CancellableEntityEventArgs { public EntityUid? User = null; } /// /// Raised when the door is determining whether it is able to close. If the event is canceled, the door will not /// close. Additionally this event also has a bool that determines whether or not the door should perform a /// safety/collision check before closing. This check has to be proactively disabled by things like hacked airlocks. /// /// /// This event is raised both when the door is initially closed, and when it is just about to become "partially" /// closed (opaque & collidable). If canceled while partially closing, it will start opening again. Useful in case /// an entity entered the door just as it was about to become "solid". /// public sealed class BeforeDoorClosedEvent : CancellableEntityEventArgs { /// /// If true, this check is being performed when the door is partially closing. /// public bool Partial; public bool PerformCollisionCheck; public BeforeDoorClosedEvent(bool performCollisionCheck, bool partial = false) { Partial = partial; PerformCollisionCheck = performCollisionCheck; } } /// /// Called when the door is determining whether it is able to deny. /// Cancel to stop the door from being able to deny. /// public sealed class BeforeDoorDeniedEvent : CancellableEntityEventArgs { } /// /// Raised to determine whether the door should automatically close. /// Cancel to stop it from automatically closing. /// /// /// This is called when a door decides whether it SHOULD auto close, not when it actually closes. /// public sealed class BeforeDoorAutoCloseEvent : CancellableEntityEventArgs { } }