From 565bfa86a4cda7cb8acc18e28dc2bc9a958da6cc Mon Sep 17 00:00:00 2001 From: Flipp Syder <76629141+vulppine@users.noreply.github.com> Date: Fri, 22 Apr 2022 23:21:00 -0700 Subject: [PATCH] Air alarm fixes (again, oops) (#7715) * fixes critical issue * alright, this might be the actual fix * removes useless null checks * couple more * removes default functions from unary device data --- .../Atmos/Monitor/UI/AirAlarmWindow.xaml.cs | 4 ---- .../Monitor/UI/Widgets/PumpControl.xaml.cs | 18 ++++++++--------- .../UI/Widgets/ScrubberControl.xaml.cs | 12 +++++------ .../Monitor/Components/AirAlarmComponent.cs | 2 +- .../Unary/Components/GasVentPumpComponent.cs | 12 +++++------ .../Components/GasVentScrubberComponent.cs | 8 +++----- .../Components/SharedVentPumpComponent.cs | 20 ++++--------------- .../Components/SharedVentScrubberComponent.cs | 20 ++++--------------- 8 files changed, 32 insertions(+), 64 deletions(-) diff --git a/Content.Client/Atmos/Monitor/UI/AirAlarmWindow.xaml.cs b/Content.Client/Atmos/Monitor/UI/AirAlarmWindow.xaml.cs index 3b79f618bc..29445cfcff 100644 --- a/Content.Client/Atmos/Monitor/UI/AirAlarmWindow.xaml.cs +++ b/Content.Client/Atmos/Monitor/UI/AirAlarmWindow.xaml.cs @@ -111,8 +111,6 @@ namespace Content.Client.Atmos.Monitor.UI switch (device) { case GasVentPumpData pump: - if (!pump.Dirty) pump = GasVentPumpData.Default(); - if (!_pumps.TryGetValue(addr, out var pumpControl)) { var control= new PumpControl(pump, addr); @@ -127,8 +125,6 @@ namespace Content.Client.Atmos.Monitor.UI break; case GasVentScrubberData scrubber: - if (!scrubber.Dirty) scrubber = GasVentScrubberData.Default(); - if (!_scrubbers.TryGetValue(addr, out var scrubberControl)) { var control = new ScrubberControl(scrubber, addr); diff --git a/Content.Client/Atmos/Monitor/UI/Widgets/PumpControl.xaml.cs b/Content.Client/Atmos/Monitor/UI/Widgets/PumpControl.xaml.cs index 71af09af64..d4284a5826 100644 --- a/Content.Client/Atmos/Monitor/UI/Widgets/PumpControl.xaml.cs +++ b/Content.Client/Atmos/Monitor/UI/Widgets/PumpControl.xaml.cs @@ -43,7 +43,7 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets PumpDataChanged?.Invoke(_address, _data); }; - _internalBound.Value = (float) _data.InternalPressureBound!; + _internalBound.Value = (float) _data.InternalPressureBound; _internalBound.OnValueChanged += _ => { _data.InternalPressureBound = _internalBound.Value; @@ -51,7 +51,7 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets }; _internalBound.IsValid += value => value >= 0; - _externalBound.Value = (float) _data.ExternalPressureBound!; + _externalBound.Value = (float) _data.ExternalPressureBound; _externalBound.OnValueChanged += _ => { _data.ExternalPressureBound = _externalBound.Value; @@ -62,7 +62,7 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets foreach (var value in Enum.GetValues()) _pumpDirection.AddItem(Loc.GetString($"{value}"), (int) value); - _pumpDirection.SelectId((int) _data.PumpDirection!); + _pumpDirection.SelectId((int) _data.PumpDirection); _pumpDirection.OnItemSelected += args => { _pumpDirection.SelectId(args.Id); @@ -73,7 +73,7 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets foreach (var value in Enum.GetValues()) _pressureCheck.AddItem(Loc.GetString($"{value}"), (int) value); - _pressureCheck.SelectId((int) _data.PressureChecks!); + _pressureCheck.SelectId((int) _data.PressureChecks); _pressureCheck.OnItemSelected += args => { _pressureCheck.SelectId(args.Id); @@ -85,19 +85,19 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets public void ChangeData(GasVentPumpData data) { _data.Enabled = data.Enabled; - _enabled.Pressed = _data.Enabled!; + _enabled.Pressed = _data.Enabled; _data.PumpDirection = data.PumpDirection; - _pumpDirection.SelectId((int) _data.PumpDirection!); + _pumpDirection.SelectId((int) _data.PumpDirection); _data.PressureChecks = data.PressureChecks; - _pressureCheck.SelectId((int) _data.PressureChecks!); + _pressureCheck.SelectId((int) _data.PressureChecks); _data.ExternalPressureBound = data.ExternalPressureBound; - _externalBound.Value = (float) _data.ExternalPressureBound!; + _externalBound.Value = _data.ExternalPressureBound; _data.InternalPressureBound = data.InternalPressureBound; - _internalBound.Value = (float) _data.InternalPressureBound!; + _internalBound.Value = _data.InternalPressureBound; } } } diff --git a/Content.Client/Atmos/Monitor/UI/Widgets/ScrubberControl.xaml.cs b/Content.Client/Atmos/Monitor/UI/Widgets/ScrubberControl.xaml.cs index 9aaee77f98..09c28c8b02 100644 --- a/Content.Client/Atmos/Monitor/UI/Widgets/ScrubberControl.xaml.cs +++ b/Content.Client/Atmos/Monitor/UI/Widgets/ScrubberControl.xaml.cs @@ -55,7 +55,7 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets ScrubberDataChanged?.Invoke(_address, _data); }; - _volumeRate.Value = (float) _data.VolumeRate!; + _volumeRate.Value = _data.VolumeRate; _volumeRate.OnValueChanged += _ => { _data.VolumeRate = _volumeRate.Value; @@ -66,7 +66,7 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets foreach (var value in Enum.GetValues()) _pumpDirection.AddItem(Loc.GetString($"{value}"), (int) value); - _pumpDirection.SelectId((int) _data.PumpDirection!); + _pumpDirection.SelectId((int) _data.PumpDirection); _pumpDirection.OnItemSelected += args => { _pumpDirection.SelectId(args.Id); @@ -82,7 +82,7 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets Text = Loc.GetString($"{value}"), ToggleMode = true, HorizontalExpand = true, - Pressed = _data.FilterGases!.Contains(value) + Pressed = _data.FilterGases.Contains(value) }; gasButton.OnToggled += args => { @@ -105,15 +105,15 @@ namespace Content.Client.Atmos.Monitor.UI.Widgets _enabled.Pressed = _data.Enabled; _data.PumpDirection = data.PumpDirection; - _pumpDirection.SelectId((int) _data.PumpDirection!); + _pumpDirection.Select((int) _data.PumpDirection); _data.VolumeRate = data.VolumeRate; - _volumeRate.Value = (float) _data.VolumeRate!; + _volumeRate.Value = _data.VolumeRate; _data.WideNet = data.WideNet; _wideNet.Pressed = _data.WideNet; - var intersect = _data.FilterGases!.Intersect(data.FilterGases!); + var intersect = _data.FilterGases.Intersect(data.FilterGases); foreach (var value in Enum.GetValues()) if (!intersect.Contains(value)) diff --git a/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs b/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs index 76174c2ae5..e7a4ec9d03 100644 --- a/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs +++ b/Content.Server/Atmos/Monitor/Components/AirAlarmComponent.cs @@ -24,7 +24,7 @@ namespace Content.Server.Atmos.Monitor.Components private AirAlarmSystem? _airAlarmSystem; - [ViewVariables] public AirAlarmMode CurrentMode { get; set; } + [ViewVariables] public AirAlarmMode CurrentMode { get; set; } = AirAlarmMode.Filtering; // Remember to null this afterwards. [ViewVariables] public IAirAlarmModeUpdate? CurrentModeUpdater { get; set; } diff --git a/Content.Server/Atmos/Piping/Unary/Components/GasVentPumpComponent.cs b/Content.Server/Atmos/Piping/Unary/Components/GasVentPumpComponent.cs index b1dcefd7b6..5b19eb3168 100644 --- a/Content.Server/Atmos/Piping/Unary/Components/GasVentPumpComponent.cs +++ b/Content.Server/Atmos/Piping/Unary/Components/GasVentPumpComponent.cs @@ -39,7 +39,7 @@ namespace Content.Server.Atmos.Piping.Unary.Components } private float _externalPressureBound = Atmospherics.OneAtmosphere; - + [ViewVariables(VVAccess.ReadWrite)] [DataField("internalPressureBound")] public float InternalPressureBound @@ -74,8 +74,6 @@ namespace Content.Server.Atmos.Piping.Unary.Components public GasVentPumpData ToAirAlarmData() { - if (!IsDirty) return new GasVentPumpData { Dirty = IsDirty }; - return new GasVentPumpData { Enabled = Enabled, @@ -91,10 +89,10 @@ namespace Content.Server.Atmos.Piping.Unary.Components { Enabled = data.Enabled; IsDirty = data.Dirty; - PumpDirection = (VentPumpDirection) data.PumpDirection!; - PressureChecks = (VentPressureBound) data.PressureChecks!; - ExternalPressureBound = (float) data.ExternalPressureBound!; - InternalPressureBound = (float) data.InternalPressureBound!; + PumpDirection = data.PumpDirection; + PressureChecks = data.PressureChecks; + ExternalPressureBound = data.ExternalPressureBound; + InternalPressureBound = data.InternalPressureBound; } } } diff --git a/Content.Server/Atmos/Piping/Unary/Components/GasVentScrubberComponent.cs b/Content.Server/Atmos/Piping/Unary/Components/GasVentScrubberComponent.cs index 8cc970a7f2..64f0067527 100644 --- a/Content.Server/Atmos/Piping/Unary/Components/GasVentScrubberComponent.cs +++ b/Content.Server/Atmos/Piping/Unary/Components/GasVentScrubberComponent.cs @@ -56,8 +56,6 @@ namespace Content.Server.Atmos.Piping.Unary.Components public GasVentScrubberData ToAirAlarmData() { - if (!IsDirty) return new GasVentScrubberData { Dirty = IsDirty }; - return new GasVentScrubberData { Enabled = Enabled, @@ -73,11 +71,11 @@ namespace Content.Server.Atmos.Piping.Unary.Components { Enabled = data.Enabled; IsDirty = data.Dirty; - PumpDirection = (ScrubberPumpDirection) data.PumpDirection!; - TransferRate = (float) data.VolumeRate!; + PumpDirection = data.PumpDirection; + TransferRate = data.VolumeRate; WideNet = data.WideNet; - if (!data.FilterGases!.SequenceEqual(FilterGases)) + if (!data.FilterGases.SequenceEqual(FilterGases)) { FilterGases.Clear(); foreach (var gas in data.FilterGases!) diff --git a/Content.Shared/Atmos/Piping/Unary/Components/SharedVentPumpComponent.cs b/Content.Shared/Atmos/Piping/Unary/Components/SharedVentPumpComponent.cs index 37c88c4531..7ad59604ee 100644 --- a/Content.Shared/Atmos/Piping/Unary/Components/SharedVentPumpComponent.cs +++ b/Content.Shared/Atmos/Piping/Unary/Components/SharedVentPumpComponent.cs @@ -10,10 +10,10 @@ namespace Content.Shared.Atmos.Piping.Unary.Components public bool Enabled { get; set; } public bool Dirty { get; set; } public bool IgnoreAlarms { get; set; } = false; - public VentPumpDirection? PumpDirection { get; set; } - public VentPressureBound? PressureChecks { get; set; } - public float? ExternalPressureBound { get; set; } - public float? InternalPressureBound { get; set; } + public VentPumpDirection PumpDirection { get; set; } = VentPumpDirection.Releasing; + public VentPressureBound PressureChecks { get; set; } = VentPressureBound.ExternalBound; + public float ExternalPressureBound { get; set; } = Atmospherics.OneAtmosphere; + public float InternalPressureBound { get; set; } = 0f; // Presets for 'dumb' air alarm modes @@ -45,18 +45,6 @@ namespace Content.Shared.Atmos.Piping.Unary.Components ExternalPressureBound = Atmospherics.OneAtmosphere, InternalPressureBound = 0f }; - - public static GasVentPumpData Default() - { - return new GasVentPumpData - { - Enabled = true, - PumpDirection = VentPumpDirection.Releasing, - PressureChecks = VentPressureBound.ExternalBound, - ExternalPressureBound = Atmospherics.OneAtmosphere, - InternalPressureBound = 0f - }; - } } [Serializable, NetSerializable] diff --git a/Content.Shared/Atmos/Piping/Unary/Components/SharedVentScrubberComponent.cs b/Content.Shared/Atmos/Piping/Unary/Components/SharedVentScrubberComponent.cs index 0e78814408..c12790fd27 100644 --- a/Content.Shared/Atmos/Piping/Unary/Components/SharedVentScrubberComponent.cs +++ b/Content.Shared/Atmos/Piping/Unary/Components/SharedVentScrubberComponent.cs @@ -11,10 +11,10 @@ namespace Content.Shared.Atmos.Piping.Unary.Components public bool Enabled { get; set; } public bool Dirty { get; set; } public bool IgnoreAlarms { get; set; } = false; - public HashSet? FilterGases { get; set; } - public ScrubberPumpDirection? PumpDirection { get; set; } - public float? VolumeRate { get; set; } - public bool WideNet { get; set; } + public HashSet FilterGases { get; set; } = new(DefaultFilterGases); + public ScrubberPumpDirection PumpDirection { get; set; } = ScrubberPumpDirection.Scrubbing; + public float VolumeRate { get; set; } = 200f; + public bool WideNet { get; set; } = false; public static HashSet DefaultFilterGases = new() { @@ -54,18 +54,6 @@ namespace Content.Shared.Atmos.Piping.Unary.Components VolumeRate = 200f, WideNet = false }; - - public static GasVentScrubberData Default() - { - return new GasVentScrubberData - { - Enabled = true, - FilterGases = GasVentScrubberData.DefaultFilterGases, - PumpDirection = ScrubberPumpDirection.Scrubbing, - VolumeRate = 200f, - WideNet = false - }; - } } [Serializable, NetSerializable]