Cleanup some Client atmos systems (#33634)

* Cleanup `ScrubberControl.xaml.cs`

* Minor cleanups

* Another pile of minor cleanups

* Apply requested changes

* Rename "which" into "bound". Add whitespace after "if"
This commit is contained in:
MilenVolf
2024-11-30 04:33:29 +03:00
committed by GitHub
parent f99331aa00
commit 6c86d7b32b
15 changed files with 68 additions and 95 deletions

View File

@@ -1,8 +1,4 @@
using Robust.Shared.GameObjects;
namespace Content.Client.Atmos.Components; namespace Content.Client.Atmos.Components;
[RegisterComponent] [RegisterComponent]
public sealed partial class PipeColorVisualsComponent : Component public sealed partial class PipeColorVisualsComponent : Component;
{
}

View File

@@ -1,6 +1,5 @@
<BoxContainer xmlns="https://spacestation14.io" <BoxContainer xmlns="https://spacestation14.io"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:Content.Client.Stylesheets"
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client" xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls" xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Orientation="Vertical" HorizontalExpand ="True" Margin="0 0 0 3"> Orientation="Vertical" HorizontalExpand ="True" Margin="0 0 0 3">
@@ -62,7 +61,7 @@
</PanelContainer> </PanelContainer>
</BoxContainer> </BoxContainer>
<!-- If the alarm is inactive, this is label is diplayed instead --> <!-- If the alarm is inactive, this is label is displayed instead -->
<Label Name="NoDataLabel" Text="{Loc 'atmos-alerts-window-no-data-available'}" HorizontalAlignment="Center" Margin="0 15" FontColorOverride="#a9a9a9" ReservesSpace="False" Visible="False"></Label> <Label Name="NoDataLabel" Text="{Loc 'atmos-alerts-window-no-data-available'}" HorizontalAlignment="Center" Margin="0 15" FontColorOverride="#a9a9a9" ReservesSpace="False" Visible="False"></Label>
<!-- Silencing progress bar --> <!-- Silencing progress bar -->

View File

@@ -136,8 +136,9 @@ public sealed partial class AtmosAlarmEntryContainer : BoxContainer
GasGridContainer.RemoveAllChildren(); GasGridContainer.RemoveAllChildren();
var gasData = focusData.Value.GasData.Where(g => g.Key != Gas.Oxygen); var gasData = focusData.Value.GasData.Where(g => g.Key != Gas.Oxygen);
var keyValuePairs = gasData.ToList();
if (gasData.Count() == 0) if (keyValuePairs.Count == 0)
{ {
// No other gases // No other gases
var gasLabel = new Label() var gasLabel = new Label()
@@ -158,13 +159,11 @@ public sealed partial class AtmosAlarmEntryContainer : BoxContainer
else else
{ {
// Add an entry for each gas // Add an entry for each gas
foreach ((var gas, (var mol, var percent, var alert)) in gasData) foreach ((var gas, (var mol, var percent, var alert)) in keyValuePairs)
{ {
var gasPercent = (FixedPoint2)0f; FixedPoint2 gasPercent = percent * 100f;
gasPercent = percent * 100f;
if (!_gasShorthands.TryGetValue(gas, out var gasShorthand)) var gasShorthand = _gasShorthands.GetValueOrDefault(gas, "X");
gasShorthand = "X";
var gasLabel = new Label() var gasLabel = new Label()
{ {

View File

@@ -14,8 +14,6 @@ public sealed class AtmosAlertsComputerBoundUserInterface : BoundUserInterface
_menu = new AtmosAlertsComputerWindow(this, Owner); _menu = new AtmosAlertsComputerWindow(this, Owner);
_menu.OpenCentered(); _menu.OpenCentered();
_menu.OnClose += Close; _menu.OnClose += Close;
EntMan.TryGetComponent<TransformComponent>(Owner, out var xform);
} }
protected override void UpdateState(BoundUserInterfaceState state) protected override void UpdateState(BoundUserInterfaceState state)
@@ -24,9 +22,6 @@ public sealed class AtmosAlertsComputerBoundUserInterface : BoundUserInterface
var castState = (AtmosAlertsComputerBoundInterfaceState) state; var castState = (AtmosAlertsComputerBoundInterfaceState) state;
if (castState == null)
return;
EntMan.TryGetComponent<TransformComponent>(Owner, out var xform); EntMan.TryGetComponent<TransformComponent>(Owner, out var xform);
_menu?.UpdateUI(xform?.Coordinates, castState.AirAlarms, castState.FireAlarms, castState.FocusData); _menu?.UpdateUI(xform?.Coordinates, castState.AirAlarms, castState.FireAlarms, castState.FocusData);
} }

View File

@@ -1,7 +1,6 @@
<controls:FancyWindow xmlns="https://spacestation14.io" <controls:FancyWindow xmlns="https://spacestation14.io"
xmlns:ui="clr-namespace:Content.Client.Pinpointer.UI" xmlns:ui="clr-namespace:Content.Client.Pinpointer.UI"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls" xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
Title="{Loc 'atmos-alerts-window-title'}" Title="{Loc 'atmos-alerts-window-title'}"
Resizable="False" Resizable="False"
SetSize="1120 750" SetSize="1120 750"

View File

@@ -4,8 +4,6 @@ using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.Piping; using Content.Shared.Atmos.Piping;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Client.GameObjects; using Robust.Client.GameObjects;
using Robust.Client.ResourceManagement;
using Robust.Shared.Serialization.TypeSerializers.Implementations;
namespace Content.Client.Atmos.EntitySystems; namespace Content.Client.Atmos.EntitySystems;
@@ -19,7 +17,7 @@ public sealed class AtmosPipeAppearanceSystem : EntitySystem
base.Initialize(); base.Initialize();
SubscribeLocalEvent<PipeAppearanceComponent, ComponentInit>(OnInit); SubscribeLocalEvent<PipeAppearanceComponent, ComponentInit>(OnInit);
SubscribeLocalEvent<PipeAppearanceComponent, AppearanceChangeEvent>(OnAppearanceChanged, after: new[] { typeof(SubFloorHideSystem) }); SubscribeLocalEvent<PipeAppearanceComponent, AppearanceChangeEvent>(OnAppearanceChanged, after: [typeof(SubFloorHideSystem)]);
} }
private void OnInit(EntityUid uid, PipeAppearanceComponent component, ComponentInit args) private void OnInit(EntityUid uid, PipeAppearanceComponent component, ComponentInit args)
@@ -84,7 +82,8 @@ public sealed class AtmosPipeAppearanceSystem : EntitySystem
layer.Visible &= visible; layer.Visible &= visible;
if (!visible) continue; if (!visible)
continue;
layer.Color = color; layer.Color = color;
} }

View File

@@ -1,12 +1,7 @@
using System.Collections.Generic;
using Content.Shared.Atmos.Monitor; using Content.Shared.Atmos.Monitor;
using Content.Shared.Power; using Content.Shared.Power;
using Robust.Client.GameObjects; using Robust.Client.GameObjects;
using Robust.Client.Graphics; using Robust.Client.Graphics;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Client.Atmos.Monitor; namespace Content.Client.Atmos.Monitor;
@@ -27,7 +22,7 @@ public sealed class AtmosAlarmableVisualsSystem : VisualizerSystem<AtmosAlarmabl
{ {
foreach (var visLayer in component.HideOnDepowered) foreach (var visLayer in component.HideOnDepowered)
{ {
if (args.Sprite.LayerMapTryGet(visLayer, out int powerVisibilityLayer)) if (args.Sprite.LayerMapTryGet(visLayer, out var powerVisibilityLayer))
args.Sprite.LayerSetVisible(powerVisibilityLayer, powered); args.Sprite.LayerSetVisible(powerVisibilityLayer, powered);
} }
} }
@@ -36,7 +31,7 @@ public sealed class AtmosAlarmableVisualsSystem : VisualizerSystem<AtmosAlarmabl
{ {
foreach (var (setLayer, powerState) in component.SetOnDepowered) foreach (var (setLayer, powerState) in component.SetOnDepowered)
{ {
if (args.Sprite.LayerMapTryGet(setLayer, out int setStateLayer)) if (args.Sprite.LayerMapTryGet(setLayer, out var setStateLayer))
args.Sprite.LayerSetState(setStateLayer, new RSI.StateId(powerState)); args.Sprite.LayerSetState(setStateLayer, new RSI.StateId(powerState));
} }
} }

View File

@@ -1,11 +1,7 @@
using Content.Shared.Atmos; using Content.Shared.Atmos;
using Content.Shared.Atmos.Monitor; using Content.Shared.Atmos.Monitor;
using Content.Shared.Atmos.Monitor.Components; using Content.Shared.Atmos.Monitor.Components;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface; using Robust.Client.UserInterface;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Log;
namespace Content.Client.Atmos.Monitor.UI; namespace Content.Client.Atmos.Monitor.UI;
@@ -78,6 +74,7 @@ public sealed class AirAlarmBoundUserInterface : BoundUserInterface
{ {
base.Dispose(disposing); base.Dispose(disposing);
if (disposing) _window?.Dispose(); if (disposing)
_window?.Dispose();
} }
} }

View File

@@ -8,7 +8,6 @@ using Content.Shared.Atmos.Monitor.Components;
using Content.Shared.Atmos.Piping.Unary.Components; using Content.Shared.Atmos.Piping.Unary.Components;
using Content.Shared.Temperature; using Content.Shared.Temperature;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML; using Robust.Client.UserInterface.XAML;
@@ -59,7 +58,7 @@ public sealed partial class AirAlarmWindow : FancyWindow
AirAlarmMode.Fill => "air-alarm-ui-mode-fill", AirAlarmMode.Fill => "air-alarm-ui-mode-fill",
AirAlarmMode.Panic => "air-alarm-ui-mode-panic", AirAlarmMode.Panic => "air-alarm-ui-mode-panic",
AirAlarmMode.None => "air-alarm-ui-mode-none", AirAlarmMode.None => "air-alarm-ui-mode-none",
_ => "error" _ => "error",
}; };
_modes.AddItem(Loc.GetString(text)); _modes.AddItem(Loc.GetString(text));
} }
@@ -70,7 +69,7 @@ public sealed partial class AirAlarmWindow : FancyWindow
AirAlarmModeChanged!.Invoke((AirAlarmMode) args.Id); AirAlarmModeChanged!.Invoke((AirAlarmMode) args.Id);
}; };
_autoMode.OnToggled += args => _autoMode.OnToggled += _ =>
{ {
AutoModeChanged!.Invoke(_autoMode.Pressed); AutoModeChanged!.Invoke(_autoMode.Pressed);
}; };
@@ -176,22 +175,18 @@ public sealed partial class AirAlarmWindow : FancyWindow
public static Color ColorForThreshold(float amount, AtmosAlarmThreshold threshold) public static Color ColorForThreshold(float amount, AtmosAlarmThreshold threshold)
{ {
threshold.CheckThreshold(amount, out AtmosAlarmType curAlarm); threshold.CheckThreshold(amount, out var curAlarm);
return ColorForAlarm(curAlarm); return ColorForAlarm(curAlarm);
} }
public static Color ColorForAlarm(AtmosAlarmType curAlarm) public static Color ColorForAlarm(AtmosAlarmType curAlarm)
{ {
if(curAlarm == AtmosAlarmType.Danger) return curAlarm switch
{ {
return StyleNano.DangerousRedFore; AtmosAlarmType.Danger => StyleNano.DangerousRedFore,
} AtmosAlarmType.Warning => StyleNano.ConcerningOrangeFore,
else if(curAlarm == AtmosAlarmType.Warning) _ => StyleNano.GoodGreenFore,
{ };
return StyleNano.ConcerningOrangeFore;
}
return StyleNano.GoodGreenFore;
} }

View File

@@ -1,12 +1,8 @@
using System;
using Content.Shared.Atmos.Monitor;
using Content.Shared.Atmos.Monitor.Components; using Content.Shared.Atmos.Monitor.Components;
using Content.Shared.Atmos.Piping.Unary.Components; using Content.Shared.Atmos.Piping.Unary.Components;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML; using Robust.Client.UserInterface.XAML;
using Robust.Shared.Localization;
namespace Content.Client.Atmos.Monitor.UI.Widgets; namespace Content.Client.Atmos.Monitor.UI.Widgets;
@@ -25,7 +21,7 @@ public sealed partial class PumpControl : BoxContainer
private OptionButton _pressureCheck => CPressureCheck; private OptionButton _pressureCheck => CPressureCheck;
private FloatSpinBox _externalBound => CExternalBound; private FloatSpinBox _externalBound => CExternalBound;
private FloatSpinBox _internalBound => CInternalBound; private FloatSpinBox _internalBound => CInternalBound;
private Button _copySettings => CCopySettings; private Button _copySettings => CCopySettings;
public PumpControl(GasVentPumpData data, string address) public PumpControl(GasVentPumpData data, string address)
{ {

View File

@@ -1,15 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Content.Shared.Atmos; using Content.Shared.Atmos;
using Content.Shared.Atmos.Monitor;
using Content.Shared.Atmos.Monitor.Components; using Content.Shared.Atmos.Monitor.Components;
using Content.Shared.Atmos.Piping.Unary.Components; using Content.Shared.Atmos.Piping.Unary.Components;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML; using Robust.Client.UserInterface.XAML;
using Robust.Shared.Localization;
namespace Content.Client.Atmos.Monitor.UI.Widgets; namespace Content.Client.Atmos.Monitor.UI.Widgets;
@@ -27,7 +21,7 @@ public sealed partial class ScrubberControl : BoxContainer
private OptionButton _pumpDirection => CPumpDirection; private OptionButton _pumpDirection => CPumpDirection;
private FloatSpinBox _volumeRate => CVolumeRate; private FloatSpinBox _volumeRate => CVolumeRate;
private CheckBox _wideNet => CWideNet; private CheckBox _wideNet => CWideNet;
private Button _copySettings => CCopySettings; private Button _copySettings => CCopySettings;
private GridContainer _gases => CGasContainer; private GridContainer _gases => CGasContainer;
private Dictionary<Gas, Button> _gasControls = new(); private Dictionary<Gas, Button> _gasControls = new();

View File

@@ -43,7 +43,8 @@ public sealed partial class SensorInfo : BoxContainer
var label = new RichTextLabel(); var label = new RichTextLabel();
var fractionGas = amount / data.TotalMoles; var fractionGas = amount / data.TotalMoles;
label.SetMarkup(Loc.GetString("air-alarm-ui-gases-indicator", ("gas", $"{gas}"), label.SetMarkup(Loc.GetString("air-alarm-ui-gases-indicator",
("gas", $"{gas}"),
("color", AirAlarmWindow.ColorForThreshold(fractionGas, data.GasThresholds[gas])), ("color", AirAlarmWindow.ColorForThreshold(fractionGas, data.GasThresholds[gas])),
("amount", $"{amount:0.####}"), ("amount", $"{amount:0.####}"),
("percentage", $"{(100 * fractionGas):0.##}"))); ("percentage", $"{(100 * fractionGas):0.##}")));
@@ -53,9 +54,9 @@ public sealed partial class SensorInfo : BoxContainer
var threshold = data.GasThresholds[gas]; var threshold = data.GasThresholds[gas];
var gasThresholdControl = new ThresholdControl(Loc.GetString($"air-alarm-ui-thresholds-gas-title", ("gas", $"{gas}")), threshold, AtmosMonitorThresholdType.Gas, gas, 100); var gasThresholdControl = new ThresholdControl(Loc.GetString($"air-alarm-ui-thresholds-gas-title", ("gas", $"{gas}")), threshold, AtmosMonitorThresholdType.Gas, gas, 100);
gasThresholdControl.Margin = new Thickness(20, 2, 2, 2); gasThresholdControl.Margin = new Thickness(20, 2, 2, 2);
gasThresholdControl.ThresholdDataChanged += (type, threshold, arg3) => gasThresholdControl.ThresholdDataChanged += (type, alarmThreshold, arg3) =>
{ {
OnThresholdUpdate!(_address, type, threshold, arg3); OnThresholdUpdate!(_address, type, alarmThreshold, arg3);
}; };
_gasThresholds.Add(gas, gasThresholdControl); _gasThresholds.Add(gas, gasThresholdControl);
@@ -64,7 +65,8 @@ public sealed partial class SensorInfo : BoxContainer
_pressureThreshold = new ThresholdControl(Loc.GetString("air-alarm-ui-thresholds-pressure-title"), data.PressureThreshold, AtmosMonitorThresholdType.Pressure); _pressureThreshold = new ThresholdControl(Loc.GetString("air-alarm-ui-thresholds-pressure-title"), data.PressureThreshold, AtmosMonitorThresholdType.Pressure);
PressureThresholdContainer.AddChild(_pressureThreshold); PressureThresholdContainer.AddChild(_pressureThreshold);
_temperatureThreshold = new ThresholdControl(Loc.GetString("air-alarm-ui-thresholds-temperature-title"), data.TemperatureThreshold, _temperatureThreshold = new ThresholdControl(Loc.GetString("air-alarm-ui-thresholds-temperature-title"),
data.TemperatureThreshold,
AtmosMonitorThresholdType.Temperature); AtmosMonitorThresholdType.Temperature);
TemperatureThresholdContainer.AddChild(_temperatureThreshold); TemperatureThresholdContainer.AddChild(_temperatureThreshold);
@@ -103,7 +105,8 @@ public sealed partial class SensorInfo : BoxContainer
} }
var fractionGas = amount / data.TotalMoles; var fractionGas = amount / data.TotalMoles;
label.SetMarkup(Loc.GetString("air-alarm-ui-gases-indicator", ("gas", $"{gas}"), label.SetMarkup(Loc.GetString("air-alarm-ui-gases-indicator",
("gas", $"{gas}"),
("color", AirAlarmWindow.ColorForThreshold(fractionGas, data.GasThresholds[gas])), ("color", AirAlarmWindow.ColorForThreshold(fractionGas, data.GasThresholds[gas])),
("amount", $"{amount:0.####}"), ("amount", $"{amount:0.####}"),
("percentage", $"{(100 * fractionGas):0.##}"))); ("percentage", $"{(100 * fractionGas):0.##}")));

View File

@@ -1,7 +1,4 @@
using Content.Client.Message;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Monitor; using Content.Shared.Atmos.Monitor;
using Content.Shared.Temperature;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML; using Robust.Client.UserInterface.XAML;

View File

@@ -1,12 +1,8 @@
using System;
using Content.Shared.Atmos; using Content.Shared.Atmos;
using Content.Shared.Atmos.Monitor; using Content.Shared.Atmos.Monitor;
using Content.Shared.Atmos.Monitor.Components;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML; using Robust.Client.UserInterface.XAML;
using Robust.Shared.Localization;
// holy FUCK // holy FUCK
// this technically works because some of this you can *not* do in XAML but holy FUCK // this technically works because some of this you can *not* do in XAML but holy FUCK
@@ -115,29 +111,38 @@ public sealed partial class ThresholdControl : BoxContainer
_enabled.Pressed = !_threshold.Ignore; _enabled.Pressed = !_threshold.Ignore;
} }
private String LabelForBound(string boundType) //<todo.eoin Replace this with enums private string LabelForBound(string boundType) //<todo.eoin Replace this with enums
{ {
return Loc.GetString($"air-alarm-ui-thresholds-{boundType}"); return Loc.GetString($"air-alarm-ui-thresholds-{boundType}");
} }
public void UpdateThresholdData(AtmosAlarmThreshold threshold, float currentAmount) public void UpdateThresholdData(AtmosAlarmThreshold threshold, float currentAmount)
{ {
threshold.CheckThreshold(currentAmount, out AtmosAlarmType alarm, out AtmosMonitorThresholdBound which); threshold.CheckThreshold(currentAmount, out var alarm, out var bound);
var upperDangerState = AtmosAlarmType.Normal; var upperDangerState = AtmosAlarmType.Normal;
var lowerDangerState = AtmosAlarmType.Normal; var lowerDangerState = AtmosAlarmType.Normal;
var upperWarningState = AtmosAlarmType.Normal; var upperWarningState = AtmosAlarmType.Normal;
var lowerWarningState = AtmosAlarmType.Normal; var lowerWarningState = AtmosAlarmType.Normal;
if(alarm == AtmosAlarmType.Danger) switch (alarm)
{ {
if(which == AtmosMonitorThresholdBound.Upper) upperDangerState = alarm; case AtmosAlarmType.Danger:
else lowerDangerState = alarm; {
} if (bound == AtmosMonitorThresholdBound.Upper)
else if(alarm == AtmosAlarmType.Warning) upperDangerState = alarm;
{ else
if(which == AtmosMonitorThresholdBound.Upper) upperWarningState = alarm; lowerDangerState = alarm;
else lowerWarningState = alarm; break;
}
case AtmosAlarmType.Warning:
{
if (bound == AtmosMonitorThresholdBound.Upper)
upperWarningState = alarm;
else
lowerWarningState = alarm;
break;
}
} }
_upperBoundControl.SetValue(threshold.UpperBound.Value); _upperBoundControl.SetValue(threshold.UpperBound.Value);

View File

@@ -1,3 +1,4 @@
using System.Globalization;
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
using Content.Client.Atmos.EntitySystems; using Content.Client.Atmos.EntitySystems;
@@ -101,14 +102,9 @@ public sealed class AtmosDebugOverlay : Overlay
else else
{ {
// Red-Green-Blue interpolation // Red-Green-Blue interpolation
if (interp < 0.5f) res = interp < 0.5f
{ ? Color.InterpolateBetween(Color.Red, Color.LimeGreen, interp * 2)
res = Color.InterpolateBetween(Color.Red, Color.LimeGreen, interp * 2); : Color.InterpolateBetween(Color.LimeGreen, Color.Blue, (interp - 0.5f) * 2);
}
else
{
res = Color.InterpolateBetween(Color.LimeGreen, Color.Blue, (interp - 0.5f) * 2);
}
} }
res = res.WithAlpha(0.75f); res = res.WithAlpha(0.75f);
@@ -181,7 +177,10 @@ public sealed class AtmosDebugOverlay : Overlay
handle.DrawCircle(tileCentre, 0.05f, Color.Black); handle.DrawCircle(tileCentre, 0.05f, Color.Black);
} }
private void CheckAndShowBlockDir(AtmosDebugOverlayData data, DrawingHandleWorld handle, AtmosDirection dir, private void CheckAndShowBlockDir(
AtmosDebugOverlayData data,
DrawingHandleWorld handle,
AtmosDirection dir,
Vector2 tileCentre) Vector2 tileCentre)
{ {
if (!data.BlockDirection.HasFlag(dir)) if (!data.BlockDirection.HasFlag(dir))
@@ -243,7 +242,7 @@ public sealed class AtmosDebugOverlay : Overlay
var moles = data.Moles == null var moles = data.Moles == null
? "No Air" ? "No Air"
: data.Moles.Sum().ToString(); : data.Moles.Sum().ToString(CultureInfo.InvariantCulture);
handle.DrawString(_font, pos, $"Moles: {moles}"); handle.DrawString(_font, pos, $"Moles: {moles}");
pos += offset; pos += offset;
@@ -263,7 +262,12 @@ public sealed class AtmosDebugOverlay : Overlay
private void GetGrids(MapId mapId, Box2Rotated box) private void GetGrids(MapId mapId, Box2Rotated box)
{ {
_grids.Clear(); _grids.Clear();
_mapManager.FindGridsIntersecting(mapId, box, ref _grids, (EntityUid uid, MapGridComponent grid, _mapManager.FindGridsIntersecting(
mapId,
box,
ref _grids,
(EntityUid uid,
MapGridComponent grid,
ref List<(Entity<MapGridComponent>, DebugMessage)> state) => ref List<(Entity<MapGridComponent>, DebugMessage)> state) =>
{ {
if (_system.TileData.TryGetValue(uid, out var data)) if (_system.TileData.TryGetValue(uid, out var data))