From: Perry Fraser Date: Mon, 12 May 2025 21:24:00 +0000 (-0400) Subject: fix: don't retroactively drain disabled batteries (#37364) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=e8c8cae31ebd9912a0dfc99e4d72404c992b4951;p=space-station-14.git 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 --- 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); }