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>
This commit is contained in:
Dmitry
2026-02-07 17:20:38 +07:00
committed by GitHub
parent d72a59f6b7
commit ff3076aa13

View File

@@ -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<AtmosAlarmableComponent> _atmosAlarmQuery;
private const int UpdateInterval = 30;
private int _accumulatedTicks;
@@ -30,9 +33,9 @@ namespace Content.Server.Doors.Systems
base.Initialize();
SubscribeLocalEvent<FirelockComponent, AtmosAlarmEvent>(OnAtmosAlarm);
SubscribeLocalEvent<FirelockComponent, PowerChangedEvent>(PowerChanged);
_atmosAlarmQuery = GetEntityQuery<AtmosAlarmableComponent>();
}
private void PowerChanged(EntityUid uid, FirelockComponent component, ref PowerChangedEvent args)
@@ -57,6 +60,14 @@ namespace Content.Server.Doors.Systems
var query = EntityQueryEnumerator<FirelockComponent, DoorComponent>();
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