-
Notifications
You must be signed in to change notification settings - Fork 592
Expand file tree
/
Copy pathSharedVentScrubberComponent.cs
More file actions
102 lines (93 loc) · 3.31 KB
/
Copy pathSharedVentScrubberComponent.cs
File metadata and controls
102 lines (93 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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 bool AirAlarmPanicWireCut { get; set; }
public static HashSet<Gas> DefaultFilterGases = new()
{
Gas.CarbonDioxide,
Gas.Plasma,
Gas.Tritium,
Gas.WaterVapor,
Gas.Ammonia,
Gas.NitrousOxide,
Gas.Frezon,
// Funkystation Start: Funky atmos - /tg/ gases
Gas.BZ,
Gas.Nitrium,
Gas.Hydrogen,
Gas.HyperNoblium,
Gas.ProtoNitrate,
Gas.Zauker,
Gas.Halon,
Gas.Helium,
Gas.AntiNoblium,
// Funkystation End: Funky atmos - /tg/ gases
#region Starlight
// Starlight gases
Gas.ZXA,
#endregion
};
// Presets for 'dumb' air alarm modes
public static GasVentScrubberData FilterModePreset = new GasVentScrubberData
{
Enabled = true,
FilterGases = new(GasVentScrubberData.DefaultFilterGases),
PumpDirection = ScrubberPumpDirection.Scrubbing,
VolumeRate = 200f,
WideNet = false
};
public static GasVentScrubberData WideFilterModePreset = new GasVentScrubberData
{
Enabled = true,
FilterGases = new(GasVentScrubberData.DefaultFilterGases),
PumpDirection = ScrubberPumpDirection.Scrubbing,
VolumeRate = 200f,
WideNet = true
};
public static GasVentScrubberData FillModePreset = new GasVentScrubberData
{
Enabled = false,
Dirty = true,
FilterGases = new(GasVentScrubberData.DefaultFilterGases),
PumpDirection = ScrubberPumpDirection.Scrubbing,
VolumeRate = 200f,
WideNet = false
};
public static GasVentScrubberData PanicModePreset = new GasVentScrubberData
{
Enabled = true,
Dirty = true,
FilterGases = new(GasVentScrubberData.DefaultFilterGases),
PumpDirection = ScrubberPumpDirection.Siphoning,
VolumeRate = 200f,
WideNet = true
};
public static GasVentScrubberData ReplaceModePreset = new GasVentScrubberData
{
Enabled = true,
IgnoreAlarms = true,
Dirty = true,
FilterGases = new(GasVentScrubberData.DefaultFilterGases),
PumpDirection = ScrubberPumpDirection.Siphoning,
VolumeRate = 200f,
WideNet = false
};
}
[Serializable, NetSerializable]
public enum ScrubberPumpDirection : sbyte
{
Siphoning = 0,
Scrubbing = 1,
}
}