using Content.Shared.Atmos.Monitor.Components; using Robust.Shared.Serialization; namespace Content.Shared.Atmos.Piping.Unary.Components { [Serializable, NetSerializable] public sealed class GasVentScrubberData : IAtmosDeviceData { public bool Enabled { get; set; } public bool Dirty { get; set; } public bool IgnoreAlarms { get; set; } = false; public HashSet FilterGases { get; set; } = new(DefaultFilterGases); public ScrubberPumpDirection PumpDirection { get; set; } = ScrubberPumpDirection.Scrubbing; public float VolumeRate { get; set; } = 200f; public bool WideNet { get; set; } = false; public static HashSet DefaultFilterGases = new() { Gas.CarbonDioxide, Gas.Plasma, Gas.Tritium, Gas.WaterVapor, }; // Presets for 'dumb' air alarm modes public static GasVentScrubberData FilterModePreset = new GasVentScrubberData { Enabled = true, FilterGases = GasVentScrubberData.DefaultFilterGases, PumpDirection = ScrubberPumpDirection.Scrubbing, VolumeRate = 200f, WideNet = false }; public static GasVentScrubberData FillModePreset = new GasVentScrubberData { Enabled = false, Dirty = true, FilterGases = GasVentScrubberData.DefaultFilterGases, PumpDirection = ScrubberPumpDirection.Scrubbing, VolumeRate = 200f, WideNet = false }; public static GasVentScrubberData PanicModePreset = new GasVentScrubberData { Enabled = true, Dirty = true, FilterGases = GasVentScrubberData.DefaultFilterGases, PumpDirection = ScrubberPumpDirection.Siphoning, VolumeRate = 200f, WideNet = false }; } [Serializable, NetSerializable] public enum ScrubberPumpDirection : sbyte { Siphoning = 0, Scrubbing = 1, } }