diff --git a/Content.Server/Power/Components/PowerNetworkBatteryComponent.cs b/Content.Server/Power/Components/PowerNetworkBatteryComponent.cs index 7c47898004..d23e89bfc8 100644 --- a/Content.Server/Power/Components/PowerNetworkBatteryComponent.cs +++ b/Content.Server/Power/Components/PowerNetworkBatteryComponent.cs @@ -15,6 +15,8 @@ namespace Content.Server.Power.Components [RegisterComponent] public sealed class PowerNetworkBatteryComponent : Component { + [ViewVariables] public float LastSupply = 0f; + [DataField("maxChargeRate")] [ViewVariables(VVAccess.ReadWrite)] public float MaxChargeRate diff --git a/Content.Server/Power/EntitySystems/PowerNetSystem.cs b/Content.Server/Power/EntitySystems/PowerNetSystem.cs index a9db544d01..db524d5ab8 100644 --- a/Content.Server/Power/EntitySystems/PowerNetSystem.cs +++ b/Content.Server/Power/EntitySystems/PowerNetSystem.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Collections.Generic; +using System.Diagnostics; using Content.Server.NodeContainer.EntitySystems; using Content.Server.Power.Components; using Content.Server.Power.NodeGroups; @@ -7,6 +8,7 @@ using Content.Server.Power.Pow3r; using JetBrains.Annotations; using Robust.Shared.GameObjects; using Robust.Shared.IoC; +using Robust.Shared.Log; using Robust.Shared.Maths; namespace Content.Server.Power.EntitySystems @@ -21,8 +23,6 @@ namespace Content.Server.Power.EntitySystems private readonly HashSet _powerNetReconnectQueue = new(); private readonly HashSet _apcNetReconnectQueue = new(); - private readonly Dictionary _lastSupply = new(); - private readonly BatteryRampPegSolver _solver = new(); public override void Initialize() @@ -208,14 +208,6 @@ namespace Content.Server.Power.EntitySystems { base.Update(frameTime); - // Setup for events. - { - foreach (var powerNetBattery in EntityManager.EntityQuery()) - { - _lastSupply[powerNetBattery] = powerNetBattery.CurrentSupply; - } - } - // Reconnect networks. { foreach (var apcNet in _apcNetReconnectQueue) @@ -276,24 +268,20 @@ namespace Content.Server.Power.EntitySystems foreach (var powerNetBattery in EntityManager.EntityQuery()) { - if (!_lastSupply.TryGetValue(powerNetBattery, out var lastPowerSupply)) - { - lastPowerSupply = 0f; - } - + var lastSupply = powerNetBattery.LastSupply; var currentSupply = powerNetBattery.CurrentSupply; - if (lastPowerSupply == 0f && currentSupply != 0f) + if (lastSupply == 0f && currentSupply != 0f) { RaiseLocalEvent(powerNetBattery.Owner, new PowerNetBatterySupplyEvent {Supply = true}); } - else if (lastPowerSupply > 0f && currentSupply == 0f) + else if (lastSupply > 0f && currentSupply == 0f) { RaiseLocalEvent(powerNetBattery.Owner, new PowerNetBatterySupplyEvent {Supply = false}); } - } - _lastSupply.Clear(); + powerNetBattery.LastSupply = currentSupply; + } } }