diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs index 374d69faed..91f9f56d2c 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs @@ -1,4 +1,5 @@ using System; +using Content.Server.Administration.Logs; using Content.Server.Atmos.Piping.Binary.Components; using Content.Server.Atmos.Piping.Components; using Content.Server.NodeContainer; @@ -6,6 +7,7 @@ using Content.Server.NodeContainer.Nodes; using Content.Shared.Atmos; using Content.Shared.Atmos.Piping; using Content.Shared.Atmos.Piping.Binary.Components; +using Content.Shared.Database; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Popups; @@ -22,6 +24,7 @@ namespace Content.Server.Atmos.Piping.Binary.EntitySystems public class GasPressurePumpSystem : EntitySystem { [Dependency] private UserInterfaceSystem _userInterfaceSystem = default!; + [Dependency] private AdminLogSystem _adminLogSystem = default!; public override void Initialize() { @@ -111,12 +114,16 @@ namespace Content.Server.Atmos.Piping.Binary.EntitySystems private void OnToggleStatusMessage(EntityUid uid, GasPressurePumpComponent pump, GasPressurePumpToggleStatusMessage args) { pump.Enabled = args.Enabled; + _adminLogSystem.Add(LogType.AtmosPowerChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {EntityManager.ToPrettyString(uid):device} to {args.Enabled}"); DirtyUI(uid, pump); } private void OnOutputPressureChangeMessage(EntityUid uid, GasPressurePumpComponent pump, GasPressurePumpChangeOutputPressureMessage args) { pump.TargetPressure = Math.Clamp(args.Pressure, 0f, Atmospherics.MaxOutputPressure); + _adminLogSystem.Add(LogType.AtmosPressureChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the pressure on {EntityManager.ToPrettyString(uid):device} to {args.Pressure}kPa"); DirtyUI(uid, pump); } diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs index b9e64a898d..65b050bd38 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs @@ -1,4 +1,5 @@ using System; +using Content.Server.Administration.Logs; using Content.Server.Atmos.EntitySystems; using Content.Server.Atmos.Piping.Binary.Components; using Content.Server.Atmos.Piping.Components; @@ -6,6 +7,7 @@ using Content.Server.NodeContainer; using Content.Server.NodeContainer.Nodes; using Content.Shared.Atmos; using Content.Shared.Atmos.Piping.Binary.Components; +using Content.Shared.Database; using Content.Shared.Examine; using Content.Shared.Interaction; using Content.Shared.Popups; @@ -24,6 +26,7 @@ namespace Content.Server.Atmos.Piping.Binary.EntitySystems [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private UserInterfaceSystem _userInterfaceSystem = default!; + [Dependency] private AdminLogSystem _adminLogSystem = default!; public override void Initialize() { @@ -116,14 +119,17 @@ namespace Content.Server.Atmos.Piping.Binary.EntitySystems private void OnToggleStatusMessage(EntityUid uid, GasVolumePumpComponent pump, GasVolumePumpToggleStatusMessage args) { pump.Enabled = args.Enabled; + _adminLogSystem.Add(LogType.AtmosPowerChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {EntityManager.ToPrettyString(uid):device} to {args.Enabled}"); DirtyUI(uid, pump); } private void OnTransferRateChangeMessage(EntityUid uid, GasVolumePumpComponent pump, GasVolumePumpChangeTransferRateMessage args) { pump.TransferRate = Math.Clamp(args.TransferRate, 0f, Atmospherics.MaxTransferRate); + _adminLogSystem.Add(LogType.AtmosVolumeChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the transfer rate on {EntityManager.ToPrettyString(uid):device} to {args.TransferRate}"); DirtyUI(uid, pump); - } private void DirtyUI(EntityUid uid, GasVolumePumpComponent? pump) diff --git a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs index 8b770c282f..cbcbaecdec 100644 --- a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs +++ b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs @@ -1,4 +1,5 @@ using System; +using Content.Server.Administration.Logs; using Content.Server.Atmos.Piping.Components; using Content.Server.Atmos.Piping.Trinary.Components; using Content.Server.NodeContainer; @@ -7,6 +8,7 @@ using Content.Server.UserInterface; using Content.Shared.Atmos; using Content.Shared.Atmos.Piping; using Content.Shared.Atmos.Piping.Trinary.Components; +using Content.Shared.Database; using Content.Shared.Interaction; using Content.Shared.Popups; using JetBrains.Annotations; @@ -23,6 +25,7 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems { [Dependency] private IGameTiming _gameTiming = default!; [Dependency] private UserInterfaceSystem _userInterfaceSystem = default!; + [Dependency] private AdminLogSystem _adminLogSystem = default!; public override void Initialize() { @@ -110,12 +113,17 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems private void OnToggleStatusMessage(EntityUid uid, GasFilterComponent filter, GasFilterToggleStatusMessage args) { filter.Enabled = args.Enabled; + _adminLogSystem.Add(LogType.AtmosPowerChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {EntityManager.ToPrettyString(uid):device} to {args.Enabled}"); + DirtyUI(uid, filter); } private void OnTransferRateChangeMessage(EntityUid uid, GasFilterComponent filter, GasFilterChangeRateMessage args) { filter.TransferRate = Math.Clamp(args.Rate, 0f, Atmospherics.MaxTransferRate); + _adminLogSystem.Add(LogType.AtmosVolumeChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the transfer rate on {EntityManager.ToPrettyString(uid):device} to {args.Rate}"); DirtyUI(uid, filter); } diff --git a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs index 9a44d1f614..972a39ab80 100644 --- a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs +++ b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs @@ -1,10 +1,12 @@ using System; +using Content.Server.Administration.Logs; using Content.Server.Atmos.Piping.Components; using Content.Server.Atmos.Piping.Trinary.Components; using Content.Server.NodeContainer; using Content.Server.NodeContainer.Nodes; using Content.Shared.Atmos; using Content.Shared.Atmos.Piping.Trinary.Components; +using Content.Shared.Database; using Content.Shared.Interaction; using Content.Shared.Popups; using JetBrains.Annotations; @@ -19,6 +21,8 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems public class GasMixerSystem : EntitySystem { [Dependency] private UserInterfaceSystem _userInterfaceSystem = default!; + [Dependency] private AdminLogSystem _adminLogSystem = default!; + public override void Initialize() { base.Initialize(); @@ -134,12 +138,16 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems private void OnToggleStatusMessage(EntityUid uid, GasMixerComponent mixer, GasMixerToggleStatusMessage args) { mixer.Enabled = args.Enabled; + _adminLogSystem.Add(LogType.AtmosPowerChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the power on {EntityManager.ToPrettyString(uid):device} to {args.Enabled}"); DirtyUI(uid, mixer); } private void OnOutputPressureChangeMessage(EntityUid uid, GasMixerComponent mixer, GasMixerChangeOutputPressureMessage args) { mixer.TargetPressure = Math.Clamp(args.Pressure, 0f, Atmospherics.MaxOutputPressure); + _adminLogSystem.Add(LogType.AtmosPressureChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the pressure on {EntityManager.ToPrettyString(uid):device} to {args.Pressure}kPa"); DirtyUI(uid, mixer); } @@ -149,6 +157,8 @@ namespace Content.Server.Atmos.Piping.Trinary.EntitySystems float nodeOne = Math.Clamp(args.NodeOne, 0f, 100.0f) / 100.0f; mixer.InletOneConcentration = nodeOne; mixer.InletTwoConcentration = 1.0f - mixer.InletOneConcentration; + _adminLogSystem.Add(LogType.AtmosRatioChanged, LogImpact.Medium, + $"{EntityManager.ToPrettyString(args.Session.AttachedEntity!.Value):player} set the ratio on {EntityManager.ToPrettyString(uid):device} to {mixer.InletOneConcentration}:{mixer.InletTwoConcentration}"); DirtyUI(uid, mixer); } } diff --git a/Content.Shared.Database/LogType.cs b/Content.Shared.Database/LogType.cs index a86db2afcd..be025e61d5 100644 --- a/Content.Shared.Database/LogType.cs +++ b/Content.Shared.Database/LogType.cs @@ -55,4 +55,9 @@ public enum LogType Thirst = 51, Electrocution = 52, CrayonDraw = 39, + AtmosPressureChanged = 54, + AtmosPowerChanged = 55, + AtmosVolumeChanged = 56, + AtmosFilterChanged = 57, + AtmosRatioChanged = 58, }