CatStation/Content.Shared/Atmos/GasMixtureStringRepresentation.cs
ArtisticRoomba 5f030ee346
Atmos YAML-defined gas flammability, flammability API (#43165)
* atmos masked flammability/API

* on that oomba pac

* yuuup

* resolve todo and review

* rename
2026-03-11 06:23:27 +00:00

25 lines
801 B
C#

using System.Text;
namespace Content.Shared.Atmos;
public readonly record struct GasMixtureStringRepresentation(float TotalMoles, float Temperature, float Pressure, Dictionary<string, float> MolesPerGas) : IFormattable
{
public override string ToString()
{
var stringBuilder = new StringBuilder();
foreach (var (gas, moles) in MolesPerGas)
{
stringBuilder.Append($"{gas}: {moles}, ");
}
var result = stringBuilder.ToString();
return $"{Temperature} K, {Pressure} kPa, {result}Total Moles: {TotalMoles}";
}
public string ToString(string? format, IFormatProvider? formatProvider)
{
return ToString();
}
public static implicit operator string(GasMixtureStringRepresentation rep) => rep.ToString();
}