private void OnDoorAutoCloseCheck(EntityUid uid, AirlockComponent component, BeforeDoorAutoCloseEvent args) { if (!component.AutoClose) { args.Cancel(); } }
/// <summary> /// Updates the auto close timer. /// </summary> public void UpdateAutoClose(EntityUid uid, AirlockComponent?airlock = null, DoorComponent?door = null) { if (!Resolve(uid, ref airlock, ref door)) { return; } if (door.State != DoorState.Open) { return; } if (!airlock.CanChangeState()) { return; } var autoev = new BeforeDoorAutoCloseEvent(); RaiseLocalEvent(uid, autoev, false); if (autoev.Cancelled) { return; } DoorSystem.SetNextStateChange(uid, airlock.AutoCloseDelay * airlock.AutoCloseDelayModifier); }
private void OnAutoClose(EntityUid uid, DockingComponent component, BeforeDoorAutoCloseEvent args) { // We'll just pin the door open when docked. if (component.Docked) { args.Cancel(); } }
private void OnBeforeDoorAutoclose(EntityUid uid, FirelockComponent component, BeforeDoorAutoCloseEvent args) { // Make firelocks autoclose, but only if the last alarm type it // remembers was a danger. This is to prevent people from // flooding hallways with endless bad air/fire. if (!EntityManager.TryGetComponent(uid, out AtmosAlarmableComponent? alarmable)) { args.Cancel(); return; } if (alarmable.HighestNetworkState != AtmosMonitorAlarmType.Danger) { args.Cancel(); } }
private void OnBeforeDoorAutoclose(EntityUid uid, FirelockComponent component, BeforeDoorAutoCloseEvent args) { // Firelocks can't autoclose, they must be manually closed args.Cancel(); }