using Content.Shared.Atmos; using Content.Shared.Guidebook; namespace Content.Server.Atmos.Portable { [RegisterComponent] public sealed partial class PortableScrubberComponent : Component { /// /// The air inside this machine. /// [DataField("gasMixture"), ViewVariables(VVAccess.ReadWrite)] public GasMixture Air { get; private set; } = new(); [DataField("port"), ViewVariables(VVAccess.ReadWrite)] public string PortName { get; set; } = "port"; /// /// Which gases this machine will scrub out. /// Unlike fixed scrubbers controlled by an air alarm, /// this can't be changed in game. /// [DataField("filterGases")] public HashSet FilterGases = new() { Gas.CarbonDioxide, Gas.Plasma, Gas.Tritium, Gas.WaterVapor, Gas.Ammonia, Gas.NitrousOxide, Gas.Frezon }; [ViewVariables(VVAccess.ReadWrite)] public bool Enabled = true; /// /// Maximum internal pressure before it refuses to take more. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float MaxPressure = 2500; /// /// The speed at which gas is scrubbed from the environment. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float TransferRate = 800; #region GuidebookData [GuidebookData] public float Volume => Air.Volume; #endregion } }