diff --git a/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs b/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs index 3d95b626df..67e18b8f9e 100644 --- a/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs +++ b/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs @@ -15,10 +15,10 @@ public sealed class AirAlarmComponent : Component [ViewVariables] public AirAlarmTab CurrentTab { get; set; } - public Dictionary DeviceData = new(); - public Dictionary VentData = new(); - public Dictionary ScrubberData = new(); - public Dictionary SensorData = new(); + public readonly HashSet KnownDevices = new(); + public readonly Dictionary VentData = new(); + public readonly Dictionary ScrubberData = new(); + public readonly Dictionary SensorData = new(); public HashSet ActivePlayers = new(); diff --git a/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs b/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs index f204ce1882..4fc027d374 100644 --- a/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs +++ b/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs @@ -182,6 +182,7 @@ public sealed class AirAlarmSystem : EntitySystem { ForceCloseAllInterfaces(uid); component.CurrentModeUpdater = null; + component.KnownDevices.Clear(); component.ScrubberData.Clear(); component.SensorData.Clear(); component.VentData.Clear(); @@ -232,6 +233,7 @@ public sealed class AirAlarmSystem : EntitySystem { if (AccessCheck(uid, args.Session.AttachedEntity, component)) { + component.KnownDevices.Clear(); component.VentData.Clear(); component.ScrubberData.Clear(); component.SensorData.Clear(); @@ -384,8 +386,6 @@ public sealed class AirAlarmSystem : EntitySystem // Save into component. // Sync data to interface. - // _airAlarmDataSystem.UpdateDeviceData(uid, args.SenderAddress, data); - // switch (data) { case GasVentPumpData ventData: @@ -402,6 +402,8 @@ public sealed class AirAlarmSystem : EntitySystem break; } + controller.KnownDevices.Add(args.SenderAddress); + UpdateUI(uid, controller); return; @@ -500,7 +502,7 @@ public sealed class AirAlarmSystem : EntitySystem } } - var deviceCount = alarm.VentData.Count + alarm.ScrubberData.Count + alarm.SensorData.Count; + var deviceCount = alarm.KnownDevices.Count; if (!_atmosAlarmable.TryGetHighestAlert(uid, out var highestAlarm)) {