diff --git a/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs b/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs index 079a9b6911..528c7289da 100644 --- a/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs +++ b/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs @@ -4,16 +4,12 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Atmos.Piping.EntitySystems; using Content.Server.Atmos.Piping.Components; using Content.Server.DeviceNetwork; -using Content.Server.DeviceNetwork.Components; using Content.Server.DeviceNetwork.Systems; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Shared.Atmos; using Content.Shared.Atmos.Monitor; using Content.Shared.Tag; -using Robust.Server.GameObjects; -using Robust.Shared.Audio; -using Robust.Shared.Player; using Robust.Shared.Prototypes; namespace Content.Server.Atmos.Monitor.Systems; @@ -48,6 +44,18 @@ public sealed class AtmosMonitorSystem : EntitySystem SubscribeLocalEvent(OnPowerChangedEvent); SubscribeLocalEvent(BeforePacketRecv); SubscribeLocalEvent(OnPacketRecv); + SubscribeLocalEvent(OnAtmosDeviceLeaveAtmosphere); + SubscribeLocalEvent(OnAtmosDeviceEnterAtmosphere); + } + + private void OnAtmosDeviceLeaveAtmosphere(EntityUid uid, AtmosMonitorComponent atmosMonitor, AtmosDeviceDisabledEvent args) + { + atmosMonitor.TileGas = null; + } + + private void OnAtmosDeviceEnterAtmosphere(EntityUid uid, AtmosMonitorComponent atmosMonitor, AtmosDeviceEnabledEvent args) + { + atmosMonitor.TileGas = _atmosphereSystem.GetContainingMixture(uid, true); } private void OnAtmosMonitorInit(EntityUid uid, AtmosMonitorComponent component, ComponentInit args) @@ -148,21 +156,11 @@ public sealed class AtmosMonitorSystem : EntitySystem { if (!args.Powered) { - if (atmosDeviceComponent.JoinedGrid != null) - { - _atmosDeviceSystem.LeaveAtmosphere(atmosDeviceComponent); - component.TileGas = null; - } + _atmosDeviceSystem.LeaveAtmosphere(atmosDeviceComponent); } - else if (args.Powered) + else { - if (atmosDeviceComponent.JoinedGrid == null) - { - _atmosDeviceSystem.JoinAtmosphere(atmosDeviceComponent); - var air = _atmosphereSystem.GetContainingMixture(uid, true); - component.TileGas = air; - } - + _atmosDeviceSystem.JoinAtmosphere(atmosDeviceComponent); Alert(uid, component.LastAlarmState); } } diff --git a/Resources/Prototypes/Entities/Structures/Specific/Atmospherics/sensor.yml b/Resources/Prototypes/Entities/Structures/Specific/Atmospherics/sensor.yml index 774a8814fd..7e3d19eced 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Atmospherics/sensor.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Atmospherics/sensor.yml @@ -62,22 +62,23 @@ - AirSensor - type: AccessReader access: [ [ "Atmospherics" ] ] - - type: GenericVisualizer - visuals: - enum.PowerDeviceVisuals.Powered: - sensor: - True: { state: gsensor1 } - False: { state: gsensor0 } - type: Construction graph: AirSensor node: sensor + - type: Appearance - type: Sprite netsync: false drawdepth: FloorObjects sprite: Structures/Specific/Atmospherics/sensor.rsi layers: - state: gsensor1 - map: [ "sensor" ] + map: [ "enum.PowerDeviceVisualLayers.Powered" ] + - type: GenericVisualizer + visuals: + enum.PowerDeviceVisuals.Powered: + enum.PowerDeviceVisualLayers.Powered: + True: { state: gsensor1 } + False: { state: gsensor0 } - type: entity parent: BaseItem