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
{
}
}