From 499dde1ec1b43c2cb52468200e2493b0adfc2ef0 Mon Sep 17 00:00:00 2001 From: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Date: Sun, 7 Sep 2025 09:52:27 -0500 Subject: [PATCH] Bug fix for APCPowerReceiverBattery (#40188) Initial commit --- .../Power/Components/ApcPowerReceiverComponent.cs | 5 ----- Content.Server/Power/EntitySystems/PowerNetSystem.cs | 8 +++++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Content.Server/Power/Components/ApcPowerReceiverComponent.cs b/Content.Server/Power/Components/ApcPowerReceiverComponent.cs index bfd096a253..80be62eaec 100644 --- a/Content.Server/Power/Components/ApcPowerReceiverComponent.cs +++ b/Content.Server/Power/Components/ApcPowerReceiverComponent.cs @@ -33,8 +33,6 @@ namespace Content.Server.Power.Components set { _needsPower = value; - // Reset this so next tick will do a power update. - Recalculate = true; } } @@ -51,9 +49,6 @@ namespace Content.Server.Power.Components set => NetworkLoad.Enabled = !value; } - // TODO Is this needed? It forces a PowerChangedEvent when NeedsPower is toggled even if it changes to the same state. - public bool Recalculate; - [ViewVariables] public PowerState.Load NetworkLoad { get; } = new PowerState.Load { diff --git a/Content.Server/Power/EntitySystems/PowerNetSystem.cs b/Content.Server/Power/EntitySystems/PowerNetSystem.cs index 1262e231d7..6a69550fcf 100644 --- a/Content.Server/Power/EntitySystems/PowerNetSystem.cs +++ b/Content.Server/Power/EntitySystems/PowerNetSystem.cs @@ -347,6 +347,10 @@ namespace Content.Server.Power.EntitySystems // Check if the entity has an internal battery if (_apcBatteryQuery.TryComp(uid, out var apcBattery) && _batteryQuery.TryComp(uid, out var battery)) { + metadata = MetaData(uid); + if (Paused(uid, metadata)) + continue; + apcReceiver.Load = apcBattery.IdleLoad; // Try to draw power from the battery if there isn't sufficient external power @@ -369,7 +373,6 @@ namespace Content.Server.Power.EntitySystems if (apcBattery.Enabled != enableBattery) { apcBattery.Enabled = enableBattery; - metadata = MetaData(uid); Dirty(uid, apcBattery, metadata); var apcBatteryEv = new ApcPowerReceiverBatteryChangedEvent(enableBattery); @@ -382,14 +385,13 @@ namespace Content.Server.Power.EntitySystems } // If new value is the same as the old, then exit - if (!apcReceiver.Recalculate && apcReceiver.Powered == powered) + if (apcReceiver.Powered == powered) continue; metadata ??= MetaData(uid); if (Paused(uid, metadata)) continue; - apcReceiver.Recalculate = false; apcReceiver.Powered = powered; Dirty(uid, apcReceiver, metadata); -- 2.51.2