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;
}
}
}