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