mirror of
https://github.com/space-wizards/space-station-14.git
synced 2026-02-14 19:29:53 +01:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user