Significantly updates the Engineering guidebook (more explicitly the Atmos section) to have a lot more relevant and useful information. Right now engineering has been getting update after update with no real change to the relevant guidebook entry. This has lead to a lot of out of date information and bad practices being prevalent in the guidebook, something that pains me to read.
74 lines
2.4 KiB
C#
74 lines
2.4 KiB
C#
using Content.Shared.Atmos;
|
|
using Content.Shared.Containers.ItemSlots;
|
|
using Content.Shared.Guidebook;
|
|
using Robust.Shared.Audio;
|
|
|
|
namespace Content.Server.Atmos.Piping.Unary.Components
|
|
{
|
|
[RegisterComponent]
|
|
public sealed partial class GasCanisterComponent : Component, IGasMixtureHolder
|
|
{
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("port")]
|
|
public string PortName { get; set; } = "port";
|
|
|
|
/// <summary>
|
|
/// Container name for the gas tank holder.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("container")]
|
|
public string ContainerName { get; set; } = "tank_slot";
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField]
|
|
public ItemSlot GasTankSlot = new();
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("gasMixture")]
|
|
public GasMixture Air { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Last recorded pressure, for appearance-updating purposes.
|
|
/// </summary>
|
|
public float LastPressure { get; set; } = 0f;
|
|
|
|
/// <summary>
|
|
/// Minimum release pressure possible for the release valve.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("minReleasePressure")]
|
|
public float MinReleasePressure { get; set; } = Atmospherics.OneAtmosphere / 10;
|
|
|
|
/// <summary>
|
|
/// Maximum release pressure possible for the release valve.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("maxReleasePressure")]
|
|
public float MaxReleasePressure { get; set; } = Atmospherics.OneAtmosphere * 10;
|
|
|
|
/// <summary>
|
|
/// Valve release pressure.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("releasePressure")]
|
|
public float ReleasePressure { get; set; } = Atmospherics.OneAtmosphere;
|
|
|
|
/// <summary>
|
|
/// Whether the release valve is open on the canister.
|
|
/// </summary>
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
|
[DataField("releaseValve")]
|
|
public bool ReleaseValve { get; set; } = false;
|
|
|
|
[DataField("accessDeniedSound")]
|
|
public SoundSpecifier AccessDeniedSound = new SoundPathSpecifier("/Audio/Machines/custom_deny.ogg");
|
|
|
|
#region GuidebookData
|
|
|
|
[GuidebookData]
|
|
public float Volume => Air.Volume;
|
|
|
|
#endregion
|
|
}
|
|
}
|