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:
@@ -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;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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 -->
|
||||||
|
|||||||
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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.##}")));
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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)
|
||||||
|
upperDangerState = alarm;
|
||||||
|
else
|
||||||
|
lowerDangerState = alarm;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if(alarm == AtmosAlarmType.Warning)
|
case AtmosAlarmType.Warning:
|
||||||
{
|
{
|
||||||
if(which == AtmosMonitorThresholdBound.Upper) upperWarningState = alarm;
|
if (bound == AtmosMonitorThresholdBound.Upper)
|
||||||
else lowerWarningState = alarm;
|
upperWarningState = alarm;
|
||||||
|
else
|
||||||
|
lowerWarningState = alarm;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_upperBoundControl.SetValue(threshold.UpperBound.Value);
|
_upperBoundControl.SetValue(threshold.UpperBound.Value);
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user