using Content.Shared.Atmos.Monitor.Components; using Robust.Shared.Serialization; namespace Content.Shared.Atmos.Monitor; [Serializable, NetSerializable] public sealed class AtmosSensorData : IAtmosDeviceData { public AtmosSensorData(float pressure, float temperature, float totalMoles, AtmosAlarmType alarmState, Dictionary gases, AtmosAlarmThreshold pressureThreshold, AtmosAlarmThreshold temperatureThreshold, Dictionary gasThresholds) { Pressure = pressure; Temperature = temperature; TotalMoles = totalMoles; AlarmState = alarmState; Gases = gases; PressureThreshold = pressureThreshold; TemperatureThreshold = temperatureThreshold; GasThresholds = gasThresholds; } public bool Enabled { get; set; } public bool Dirty { get; set; } public bool IgnoreAlarms { get; set; } /// Most fields are readonly, because it's data that's meant to be transmitted. /// /// Current pressure detected by this sensor. /// public float Pressure { get; } /// /// Current temperature detected by this sensor. /// public float Temperature { get; } /// /// Current amount of moles detected by this sensor. /// public float TotalMoles { get; } /// /// Current alarm state of this sensor. Does not reflect the highest alarm state on the network. /// public AtmosAlarmType AlarmState { get; } /// /// Current number of gases on this sensor. /// public Dictionary Gases { get; } public AtmosAlarmThreshold PressureThreshold { get; } public AtmosAlarmThreshold TemperatureThreshold { get; } public Dictionary GasThresholds { get; } }