From ff3076aa13a5183b3e347ef2a2bcdd4e8b75eb05 Mon Sep 17 00:00:00 2001 From: Dmitry <57028746+DIMMoon1@users.noreply.github.com> Date: Sat, 7 Feb 2026 17:20:38 +0700 Subject: [PATCH] fixing firelocks (#37523) * fixing fire locks * ouch * Revert "fixing fire locks" This reverts commit d7c8f9a6e58daf4ba0ec58c38b951613574294bb. * lol * opts --------- Co-authored-by: Dmitry <57028746+dimm00n@users.noreply.github.com> Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> --- Content.Server/Doors/Systems/FirelockSystem.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Content.Server/Doors/Systems/FirelockSystem.cs b/Content.Server/Doors/Systems/FirelockSystem.cs index 5fd0bf7e97..be0c025069 100644 --- a/Content.Server/Doors/Systems/FirelockSystem.cs +++ b/Content.Server/Doors/Systems/FirelockSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Atmos.Components; using Content.Server.Atmos.EntitySystems; +using Content.Server.Atmos.Monitor.Components; using Content.Server.Atmos.Monitor.Systems; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; @@ -22,6 +23,8 @@ namespace Content.Server.Doors.Systems [Dependency] private readonly SharedMapSystem _mapping = default!; [Dependency] private readonly PointLightSystem _pointLight = default!; + private EntityQuery _atmosAlarmQuery; + private const int UpdateInterval = 30; private int _accumulatedTicks; @@ -30,9 +33,9 @@ namespace Content.Server.Doors.Systems base.Initialize(); SubscribeLocalEvent(OnAtmosAlarm); - SubscribeLocalEvent(PowerChanged); + _atmosAlarmQuery = GetEntityQuery(); } private void PowerChanged(EntityUid uid, FirelockComponent component, ref PowerChangedEvent args) @@ -57,6 +60,14 @@ namespace Content.Server.Doors.Systems var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var firelock, out var door)) { + if (_atmosAlarmQuery.TryComp(uid, out var alarmable) + && alarmable.LastAlarmState == AtmosAlarmType.Danger + && this.IsPowered(uid, EntityManager) + && door.State == DoorState.Open) + { + EmergencyPressureStop(uid, firelock, door); + } + // only bother to check pressure on doors that are some variation of closed. if (door.State != DoorState.Closed && door.State != DoorState.Welded