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 : byte { 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 float CanisterPressure { get; } public bool PortStatus { get; } public float TankPressure { get; } public GasCanisterBoundUserInterfaceState(float canisterPressure, bool portStatus, float tankPressure) { CanisterPressure = canisterPressure; PortStatus = portStatus; TankPressure = tankPressure; } } [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; } } }