using Content.Shared.Atmos;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.ViewVariables;
namespace Content.Server.Atmos.Piping.Binary.Components
{
[RegisterComponent]
public class GasCanisterComponent : Component
{
public override string Name => "GasCanister";
[ViewVariables(VVAccess.ReadWrite)]
[DataField("port")]
public string PortName { get; set; } = "port";
[ViewVariables(VVAccess.ReadWrite)]
[DataField("tank")]
public string TankName { get; set; } = "tank";
///
/// Container name for the gas tank holder.
///
[ViewVariables(VVAccess.ReadWrite)]
[DataField("container")]
public string ContainerName { get; set; } = "GasCanisterTankHolder";
[ViewVariables(VVAccess.ReadWrite)]
[DataField("gasMixture")]
public GasMixture InitialMixture { get; } = new();
///
/// Stores the last pressure the tank had, for appearance-updating purposes.
///
[ViewVariables]
public float LastPressure { get; set; } = 0f;
///
/// Minimum release pressure possible for the release valve.
///
[ViewVariables(VVAccess.ReadWrite)]
[DataField("minReleasePressure")]
public float MinReleasePressure { get; set; } = Atmospherics.OneAtmosphere / 10;
///
/// Maximum release pressure possible for the release valve.
///
[ViewVariables(VVAccess.ReadOnly)]
[DataField("maxReleasePressure")]
public float MaxReleasePressure { get; set; } = Atmospherics.OneAtmosphere * 10;
}
}