From afd994a6960264017310c035c59c1fd62d21e920 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 24 Nov 2025 17:01:38 +0100 Subject: [PATCH] Fix gas filters (#41567) fix gas filters --- .../Atmos/UI/GasFilterBoundUserInterface.cs | 8 ++++++-- .../Piping/Trinary/EntitySystems/GasFilterSystem.cs | 10 +++++----- .../Trinary/Components/SharedGasFilterComponent.cs | 13 +++++-------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Content.Client/Atmos/UI/GasFilterBoundUserInterface.cs b/Content.Client/Atmos/UI/GasFilterBoundUserInterface.cs index 2b8020924c..ecaaca3005 100644 --- a/Content.Client/Atmos/UI/GasFilterBoundUserInterface.cs +++ b/Content.Client/Atmos/UI/GasFilterBoundUserInterface.cs @@ -52,14 +52,18 @@ namespace Content.Client.Atmos.UI private void OnSelectGasPressed() { - if (_window is null) return; + if (_window is null) + return; + if (_window.SelectedGas is null) { SendMessage(new GasFilterSelectGasMessage(null)); } else { - if (!int.TryParse(_window.SelectedGas, out var gas)) return; + if (!Enum.TryParse(_window.SelectedGas, out var gas)) + return; + SendMessage(new GasFilterSelectGasMessage(gas)); } } diff --git a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs index 8d0fb8ad2c..a889fd15b5 100644 --- a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs +++ b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs @@ -156,18 +156,18 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems private void OnSelectGasMessage(EntityUid uid, GasFilterComponent filter, GasFilterSelectGasMessage args) { - if (args.ID.HasValue) + if (args.Gas.HasValue) { - if (Enum.TryParse(args.ID.ToString(), true, out var parsedGas)) + if (Enum.IsDefined(typeof(Gas), args.Gas)) { - filter.FilteredGas = parsedGas; + filter.FilteredGas = args.Gas; _adminLogger.Add(LogType.AtmosFilterChanged, LogImpact.Medium, - $"{ToPrettyString(args.Actor):player} set the filter on {ToPrettyString(uid):device} to {parsedGas.ToString()}"); + $"{ToPrettyString(args.Actor):player} set the filter on {ToPrettyString(uid):device} to {args.Gas.ToString()}"); DirtyUI(uid, filter); } else { - Log.Warning($"{ToPrettyString(uid)} received GasFilterSelectGasMessage with an invalid ID: {args.ID}"); + Log.Warning($"{ToPrettyString(uid)} received GasFilterSelectGasMessage with an invalid ID: {args.Gas}"); } } else diff --git a/Content.Shared/Atmos/Piping/Trinary/Components/SharedGasFilterComponent.cs b/Content.Shared/Atmos/Piping/Trinary/Components/SharedGasFilterComponent.cs index 947ad01e1b..e6e1f85a38 100644 --- a/Content.Shared/Atmos/Piping/Trinary/Components/SharedGasFilterComponent.cs +++ b/Content.Shared/Atmos/Piping/Trinary/Components/SharedGasFilterComponent.cs @@ -1,4 +1,6 @@ -using Robust.Shared.Serialization; +using Content.Shared.Atmos.Prototypes; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; namespace Content.Shared.Atmos.Piping.Trinary.Components { @@ -48,13 +50,8 @@ namespace Content.Shared.Atmos.Piping.Trinary.Components } [Serializable, NetSerializable] - public sealed class GasFilterSelectGasMessage : BoundUserInterfaceMessage + public sealed class GasFilterSelectGasMessage(Gas? gas) : BoundUserInterfaceMessage { - public int? ID { get; } - - public GasFilterSelectGasMessage(int? id) - { - ID = id; - } + public readonly Gas? Gas = gas; } } -- 2.52.0