Files
tbd-station-14/Content.Shared/Atmos/Piping/Unary/Components/SharedVentScrubberComponent.cs
2022-05-13 17:59:03 +10:00

64 lines
2.0 KiB
C#

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<Gas> 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<Gas> 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,
}
}