private void UpdateStatusProperties() { if (AtmosphericAverage.SampleSize < 1) { OverallStatus = PressureStatus = TemperatureStatus = CompositionStatus = AcuStatus.Caution; return; } PressureStatus = GetMetricStatus(Thresholds.Pressure, AtmosphericAverage.Pressure); TemperatureStatus = GetMetricStatus(Thresholds.Temperature, AtmosphericAverage.Temperature); CompositionStatus = AcuStatus.Nominal; // We need to loop over all possible gases (or more specifically, a union of detected gases and recognized gases). foreach (GasSO gas in Gas.Gases.Values) { bool gasDetected = AtmosphericAverage.HasGas(gas); if (gasDetected && Thresholds.GasMoles.ContainsKey(gas) == false) { // Let thresholds know about this unrecognized gas, but values are undetermined (let a technician set them). Thresholds.GasMoles.Add(gas, AcuThresholds.UnknownValues); } GasLevelStatus[gas] = gasDetected ? GetMetricStatus(Thresholds.GasMoles[gas], AtmosphericAverage.GetGasMoles(gas)) : AcuStatus.Nominal; CompositionStatus = GasLevelStatus[gas] > CompositionStatus? GasLevelStatus[gas] : CompositionStatus; } OverallStatus = PressureStatus; OverallStatus = TemperatureStatus > OverallStatus ? TemperatureStatus : OverallStatus; OverallStatus = CompositionStatus > OverallStatus ? CompositionStatus : OverallStatus; }
public void SetValues(string metricName, float ratio, float moles, AcuStatus molStatus) { var percentString = $"{ratio, 10:P}"; var molString = GUI_Acu.ColorStringByStatus($"{moles, 8:N}", molStatus); label.SetValueServer($"| {metricName, -18} | {percentString, -13} | {molString, -34} |"); label.SetValueServer($"| {metricName, -18} | {percentString, -13} | {molString, -34} |"); }
private void Awake() { accessRestrictions = GetComponent <AccessRestrictions>(); spriteHandler = GetComponentInChildren <SpriteHandler>(); Thresholds = initialAcuThresholds.Clone(); GasLevelStatus = new AcuStatus[Gas.Gases.Count]; DesiredMode = initialOperatingMode; }
/// <summary>Get the color code associated with the given <c>ACU</c> status.</summary> /// <returns>HTML color code as a hexadecimal string</returns> public static string GetHtmlColorByStatus(AcuStatus status) { if (statusColors.ContainsKey(status)) { return(ColorUtility.ToHtmlStringRGB(statusColors[status])); } // What, write some kind of color code here? Pfft! return(ColorUtility.ToHtmlStringRGB(Color.white)); }
private void UpdateGasEntry(int index, string name, float ratio, float moles, AcuStatus molStatus) { DynamicEntry dynamicEntry = metricsContainer.Entries[index]; var entry = dynamicEntry.GetComponent <GUI_AcuGasEntry>(); entry.SetValues(name, ratio, moles, molStatus); }
/// <summary>Color the given string with the associated color of the given <c>ACU</c> status.</summary> public static string ColorStringByStatus(string text, AcuStatus status) { return($"<color=#{GetHtmlColorByStatus(status)}>{text}</color>"); }