ui updates (no sensors yet)
This commit is contained in:
@@ -47,34 +47,21 @@ namespace Content.Client.Atmos.Monitor.UI
|
||||
SendMessage(new AirAlarmUpdateAlarmModeMessage(mode));
|
||||
}
|
||||
|
||||
private void OnThresholdChanged(AtmosMonitorThresholdType type, AtmosAlarmThreshold threshold, Gas? gas = null)
|
||||
private void OnThresholdChanged(string address, AtmosMonitorThresholdType type, AtmosAlarmThreshold threshold, Gas? gas = null)
|
||||
{
|
||||
SendMessage(new AirAlarmUpdateAlarmThresholdMessage(type, threshold, gas));
|
||||
SendMessage(new AirAlarmUpdateAlarmThresholdMessage(address, type, threshold, gas));
|
||||
}
|
||||
|
||||
protected override void ReceiveMessage(BoundUserInterfaceMessage message)
|
||||
protected override void UpdateState(BoundUserInterfaceState state)
|
||||
{
|
||||
if (_window == null)
|
||||
return;
|
||||
base.UpdateState(state);
|
||||
|
||||
switch (message)
|
||||
if (state is not AirAlarmUIState cast || _window == null)
|
||||
{
|
||||
case AirAlarmSetAddressMessage addrMsg:
|
||||
_window.SetAddress(addrMsg.Address);
|
||||
break;
|
||||
case AirAlarmUpdateDeviceDataMessage deviceMsg:
|
||||
_window.UpdateDeviceData(deviceMsg.Address, deviceMsg.Data);
|
||||
break;
|
||||
case AirAlarmUpdateAlarmModeMessage alarmMsg:
|
||||
_window.UpdateModeSelector(alarmMsg.Mode);
|
||||
break;
|
||||
case AirAlarmUpdateAlarmThresholdMessage thresholdMsg:
|
||||
_window.UpdateThreshold(ref thresholdMsg);
|
||||
break;
|
||||
case AirAlarmUpdateAirDataMessage airDataMsg:
|
||||
_window.UpdateGasData(ref airDataMsg.AirData);
|
||||
break;
|
||||
return;
|
||||
}
|
||||
|
||||
_window.UpdateState(cast);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Content.Client.Atmos.Monitor.UI
|
||||
public sealed partial class AirAlarmWindow : DefaultWindow
|
||||
{
|
||||
public event Action<string, IAtmosDeviceData>? AtmosDeviceDataChanged;
|
||||
public event Action<AtmosMonitorThresholdType, AtmosAlarmThreshold, Gas?>? AtmosAlarmThresholdChanged;
|
||||
public event Action<string, AtmosMonitorThresholdType, AtmosAlarmThreshold, Gas?>? AtmosAlarmThresholdChanged;
|
||||
public event Action<AirAlarmMode>? AirAlarmModeChanged;
|
||||
public event Action<string>? ResyncDeviceRequested;
|
||||
public event Action? ResyncAllRequested;
|
||||
@@ -34,9 +34,6 @@ namespace Content.Client.Atmos.Monitor.UI
|
||||
private BoxContainer _gasReadout => CGasContainer;
|
||||
private BoxContainer _ventDevices => CVentContainer;
|
||||
private BoxContainer _scrubberDevices => CScrubberContainer;
|
||||
private BoxContainer _pressureThreshold => CPressureThreshold;
|
||||
private BoxContainer _temperatureThreshold => CTemperatureThreshold;
|
||||
private BoxContainer _gasThreshold => CGasThresholdContainer;
|
||||
|
||||
private Dictionary<string, PumpControl> _pumps = new();
|
||||
private Dictionary<string, ScrubberControl> _scrubbers = new();
|
||||
@@ -85,11 +82,24 @@ namespace Content.Client.Atmos.Monitor.UI
|
||||
};
|
||||
}
|
||||
|
||||
public void UpdateState(AirAlarmUIState state)
|
||||
{
|
||||
_pressure.SetMarkup(Loc.GetString("air-alarm-ui-window-pressure", ("pressure", $"{state.PressureAverage:0.##}")));
|
||||
_temperature.SetMarkup(Loc.GetString("air-alarm-ui-window-temperature", ("tempC", $"{TemperatureHelpers.KelvinToCelsius(state.TemperatureAverage):0.#}"), ("temperature", $"{state.TemperatureAverage:0.##}")));
|
||||
_alarmState.SetMarkup(Loc.GetString("air-alarm-ui-window-alarm-state", ("state", $"{state.AlarmType}")));
|
||||
UpdateModeSelector(state.Mode);
|
||||
foreach (var (addr, dev) in state.DeviceData)
|
||||
{
|
||||
UpdateDeviceData(addr, dev);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetAddress(string address)
|
||||
{
|
||||
_address.Text = address;
|
||||
}
|
||||
|
||||
/*
|
||||
public void UpdateGasData(ref AirAlarmAirData state)
|
||||
{
|
||||
_pressure.SetMarkup(Loc.GetString("air-alarm-ui-window-pressure", ("pressure", $"{state.Pressure:0.##}")));
|
||||
@@ -100,6 +110,7 @@ namespace Content.Client.Atmos.Monitor.UI
|
||||
foreach (var (gas, amount) in state.Gases)
|
||||
_gasLabels[gas].Text = Loc.GetString("air-alarm-ui-gases", ("gas", $"{gas}"), ("amount", $"{amount:0.####}"), ("percentage", $"{(amount / state.TotalMoles):0.##}"));
|
||||
}
|
||||
*/
|
||||
|
||||
public void UpdateModeSelector(AirAlarmMode mode)
|
||||
{
|
||||
@@ -143,6 +154,7 @@ namespace Content.Client.Atmos.Monitor.UI
|
||||
_deviceTotal.Text = $"{_pumps.Count + _scrubbers.Count}";
|
||||
}
|
||||
|
||||
/*
|
||||
public void UpdateThreshold(ref AirAlarmUpdateAlarmThresholdMessage message)
|
||||
{
|
||||
switch (message.Type)
|
||||
@@ -188,5 +200,6 @@ namespace Content.Client.Atmos.Monitor.UI
|
||||
break;
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -524,8 +524,8 @@ namespace Content.Server.Atmos.Monitor.Systems
|
||||
return;
|
||||
}
|
||||
|
||||
var pressure = CalculatePressureAverage(uid, alarm);
|
||||
var temperature = CalculateTemperatureAverage(uid, alarm);
|
||||
var pressure = CalculatePressureAverage(alarm);
|
||||
var temperature = CalculateTemperatureAverage(alarm);
|
||||
var dataToSend = new Dictionary<string, IAtmosDeviceData>();
|
||||
|
||||
if (alarm.CurrentTab != AirAlarmTab.Settings)
|
||||
|
||||
Reference in New Issue
Block a user