using Content.Shared.Doors.Components; using Robust.Shared.GameObjects; 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 is determining whether it is able to open. /// Cancel to stop the door from being opened. /// public sealed class BeforeDoorOpenedEvent : CancellableEntityEventArgs { } /// /// 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 { public bool PerformCollisionCheck; public BeforeDoorClosedEvent(bool performCollisionCheck) { 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 { } /// /// Raised to determine how long the door's pry time should be modified by. /// Multiply PryTimeModifier by the desired amount. /// public sealed class DoorGetPryTimeModifierEvent : EntityEventArgs { public float PryTimeModifier = 1.0f; } /// /// Raised when an attempt to pry open the door is made. /// Cancel to stop the door from being pried open. /// public sealed class BeforeDoorPryEvent : CancellableEntityEventArgs { public readonly EntityUid User; public BeforeDoorPryEvent(EntityUid user) { User = user; } } }