From e8c8cae31ebd9912a0dfc99e4d72404c992b4951 Mon Sep 17 00:00:00 2001 From: Perry Fraser Date: Mon, 12 May 2025 17:24:00 -0400 Subject: [PATCH] fix: don't retroactively drain disabled batteries (#37364) * fix: don't retroactively drain disabled batteries If something that used PowerCellDraw temporarily disabled said draw, once it became re-enabled the system would play catch-up trying to drain the battery for all the time since the component was disabled. * fixup! fix: don't retroactively drain disabled batteries --- Content.Shared/PowerCell/SharedPowerCellSystem.cs | 14 ++++---------- Content.Shared/PowerCell/ToggleCellDrawSystem.cs | 1 - 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/Content.Shared/PowerCell/SharedPowerCellSystem.cs b/Content.Shared/PowerCell/SharedPowerCellSystem.cs index f098f575c4..3398563e55 100644 --- a/Content.Shared/PowerCell/SharedPowerCellSystem.cs +++ b/Content.Shared/PowerCell/SharedPowerCellSystem.cs @@ -26,7 +26,7 @@ public abstract class SharedPowerCellSystem : EntitySystem private void OnMapInit(Entity ent, ref MapInitEvent args) { - QueueUpdate((ent, ent.Comp)); + ent.Comp.NextUpdateTime = Timing.CurTime + ent.Comp.Delay; } private void OnRejuvenate(EntityUid uid, PowerCellSlotComponent component, RejuvenateEvent args) @@ -71,20 +71,14 @@ public abstract class SharedPowerCellSystem : EntitySystem RaiseLocalEvent(uid, new PowerCellChangedEvent(true), false); } - /// - /// Makes the draw logic update in the next tick. - /// - public void QueueUpdate(Entity ent) - { - if (Resolve(ent, ref ent.Comp)) - ent.Comp.NextUpdateTime = Timing.CurTime; - } - public void SetDrawEnabled(Entity ent, bool enabled) { if (!Resolve(ent, ref ent.Comp, false) || ent.Comp.Enabled == enabled) return; + if (enabled) + ent.Comp.NextUpdateTime = Timing.CurTime; + ent.Comp.Enabled = enabled; Dirty(ent, ent.Comp); } diff --git a/Content.Shared/PowerCell/ToggleCellDrawSystem.cs b/Content.Shared/PowerCell/ToggleCellDrawSystem.cs index 070937b8b4..14d91d2f5f 100644 --- a/Content.Shared/PowerCell/ToggleCellDrawSystem.cs +++ b/Content.Shared/PowerCell/ToggleCellDrawSystem.cs @@ -38,7 +38,6 @@ public sealed class ToggleCellDrawSystem : EntitySystem { var uid = ent.Owner; var draw = Comp(uid); - _cell.QueueUpdate((uid, draw)); _cell.SetDrawEnabled((uid, draw), args.Activated); }