コード例 #1
0
        private string GeneratePipeMarkup(EntityUid uid, NodeContainerComponent?nodeContainer = null)
        {
            if (!Resolve(uid, ref nodeContainer))
            {
                return(Loc.GetString("gas-analyzable-system-internal-error-missing-component"));
            }

            List <string> portNames = new List <string>();
            List <string> portData  = new List <string>();

            foreach (var node in nodeContainer.Nodes)
            {
                if (node.Value is not PipeNode pn)
                {
                    continue;
                }
                float pressure = pn.Air.Pressure;
                float temp     = pn.Air.Temperature;
                portNames.Add(node.Key);
                portData.Add(Loc.GetString("gas-analyzable-system-statistics",
                                           ("pressure", pressure),
                                           ("tempK", $"{temp:0.#}"),
                                           ("tempC", $"{TemperatureHelpers.KelvinToCelsius(temp):0.#}")
                                           ));
            }

            int count = portNames.Count;

            if (count == 0)
            {
                return(Loc.GetString("gas-anlayzable-system-internal-error-no-gas-node"));
            }
            else if (count == 1)
            {
                // omit names if only one node
                return(Loc.GetString("gas-analyzable-system-header") + "\n" + portData[0]);
            }
            else
            {
                var outputs = portNames.Zip(portData, ((name, data) => name + ":\n" + data));
                return(Loc.GetString("gas-analyzable-system-header") + "\n\n" + String.Join("\n\n", outputs));
            }
        }
コード例 #2
0
 public static bool AreEqual(Celsius celsius, Kelvin kelvin)
 {
     return(celsius == TemperatureHelpers.FromKelvin(kelvin));
 }