autocloses firelocks
This commit is contained in:
@@ -25,6 +25,8 @@ namespace Content.Server.Doors.Components
|
|||||||
[DataField("lockedPryTimeModifier")]
|
[DataField("lockedPryTimeModifier")]
|
||||||
public float LockedPryTimeModifier = 1.5f;
|
public float LockedPryTimeModifier = 1.5f;
|
||||||
|
|
||||||
|
[DataField("autocloseDelay")] public TimeSpan AutocloseDelay = TimeSpan.FromSeconds(3f);
|
||||||
|
|
||||||
public bool EmergencyPressureStop()
|
public bool EmergencyPressureStop()
|
||||||
{
|
{
|
||||||
var doorSys = EntitySystem.Get<DoorSystem>();
|
var doorSys = EntitySystem.Get<DoorSystem>();
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ namespace Content.Server.Doors.Systems
|
|||||||
SubscribeLocalEvent<FirelockComponent, BeforeDoorDeniedEvent>(OnBeforeDoorDenied);
|
SubscribeLocalEvent<FirelockComponent, BeforeDoorDeniedEvent>(OnBeforeDoorDenied);
|
||||||
SubscribeLocalEvent<FirelockComponent, DoorGetPryTimeModifierEvent>(OnDoorGetPryTimeModifier);
|
SubscribeLocalEvent<FirelockComponent, DoorGetPryTimeModifierEvent>(OnDoorGetPryTimeModifier);
|
||||||
SubscribeLocalEvent<FirelockComponent, BeforeDoorPryEvent>(OnBeforeDoorPry);
|
SubscribeLocalEvent<FirelockComponent, BeforeDoorPryEvent>(OnBeforeDoorPry);
|
||||||
|
SubscribeLocalEvent<FirelockComponent, DoorStateChangedEvent>(OnUpdateState);
|
||||||
|
|
||||||
SubscribeLocalEvent<FirelockComponent, BeforeDoorAutoCloseEvent>(OnBeforeDoorAutoclose);
|
SubscribeLocalEvent<FirelockComponent, BeforeDoorAutoCloseEvent>(OnBeforeDoorAutoclose);
|
||||||
SubscribeLocalEvent<FirelockComponent, AtmosMonitorAlarmEvent>(OnAtmosAlarm);
|
SubscribeLocalEvent<FirelockComponent, AtmosMonitorAlarmEvent>(OnAtmosAlarm);
|
||||||
@@ -61,6 +62,18 @@ namespace Content.Server.Doors.Systems
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnUpdateState(EntityUid uid, FirelockComponent component, DoorStateChangedEvent args)
|
||||||
|
{
|
||||||
|
var ev = new BeforeDoorAutoCloseEvent();
|
||||||
|
RaiseLocalEvent(uid, ev);
|
||||||
|
if (ev.Cancelled)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_doorSystem.SetNextStateChange(uid, component.AutocloseDelay);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnBeforeDoorAutoclose(EntityUid uid, FirelockComponent component, BeforeDoorAutoCloseEvent args)
|
private void OnBeforeDoorAutoclose(EntityUid uid, FirelockComponent component, BeforeDoorAutoCloseEvent args)
|
||||||
{
|
{
|
||||||
// Make firelocks autoclose, but only if the last alarm type it
|
// Make firelocks autoclose, but only if the last alarm type it
|
||||||
|
|||||||
Reference in New Issue
Block a user