using Content.Shared.Atmos.Monitor.Components; namespace Content.Shared.Atmos.Monitor; public sealed class AtmosSensorData : IAtmosDeviceData { public AtmosSensorData(float pressure, float temperature, float totalMoles, AtmosMonitorAlarmType alarmState, Dictionary gases, bool onFire, AtmosAlarmThreshold pressureThreshold, AtmosAlarmThreshold temperatureThreshold, Dictionary gasThresholds) { Pressure = pressure; Temperature = temperature; TotalMoles = totalMoles; AlarmState = alarmState; Gases = gases; OnFire = onFire; 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 AtmosMonitorAlarmType AlarmState { get; } /// /// Current number of gases on this sensor. /// public Dictionary Gases { get; } /// /// If this sensor is currently detecting a fire. /// public bool OnFire { get; } public AtmosAlarmThreshold PressureThreshold { get; } public AtmosAlarmThreshold TemperatureThreshold { get; } public Dictionary GasThresholds { get; } }