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;
SubscribeLocalEvent<AtmosMonitorComponent, PowerChangedEvent>(OnPowerChangedEvent);
SubscribeLocalEvent<AtmosMonitorComponent, BeforePacketSentEvent>(BeforePacketRecv);
SubscribeLocalEvent<AtmosMonitorComponent, DeviceNetworkPacketEvent>(OnPacketRecv);
+ SubscribeLocalEvent<AtmosMonitorComponent, AtmosDeviceDisabledEvent>(OnAtmosDeviceLeaveAtmosphere);
+ SubscribeLocalEvent<AtmosMonitorComponent, AtmosDeviceEnabledEvent>(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)
{
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);
}
}
- 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