using Robust.Shared.Serialization; namespace Content.Shared.Atmos.Piping.Binary.Components { /// /// Key representing which is currently open. /// Useful when there are multiple UI for an object. Here it's future-proofing only. /// [Serializable, NetSerializable] public enum GasCanisterUiKey { Key, } #region Enums /// /// Used in to determine which visuals to update. /// [Serializable, NetSerializable] public enum GasCanisterVisuals { PressureState, TankInserted } #endregion /// /// Represents a state that can be sent to the client /// [Serializable, NetSerializable] public sealed class GasCanisterBoundUserInterfaceState : BoundUserInterfaceState { public string CanisterLabel { get; } public float CanisterPressure { get; } public bool PortStatus { get; } public string? TankLabel { get; } public float TankPressure { get; } public float ReleasePressure { get; } public bool ReleaseValve { get; } public float ReleasePressureMin { get; } public float ReleasePressureMax { get; } public GasCanisterBoundUserInterfaceState(string canisterLabel, float canisterPressure, bool portStatus, string? tankLabel, float tankPressure, float releasePressure, bool releaseValve, float releaseValveMin, float releaseValveMax) { CanisterLabel = canisterLabel; CanisterPressure = canisterPressure; PortStatus = portStatus; TankLabel = tankLabel; TankPressure = tankPressure; ReleasePressure = releasePressure; ReleaseValve = releaseValve; ReleasePressureMin = releaseValveMin; ReleasePressureMax = releaseValveMax; } } [Serializable, NetSerializable] public sealed class GasCanisterHoldingTankEjectMessage : BoundUserInterfaceMessage { public GasCanisterHoldingTankEjectMessage() {} } [Serializable, NetSerializable] public sealed class GasCanisterChangeReleasePressureMessage : BoundUserInterfaceMessage { public float Pressure { get; } public GasCanisterChangeReleasePressureMessage(float pressure) { Pressure = pressure; } } [Serializable, NetSerializable] public sealed class GasCanisterChangeReleaseValveMessage : BoundUserInterfaceMessage { public bool Valve { get; } public GasCanisterChangeReleaseValveMessage(bool valve) { Valve = valve; } } }