From 29887636e5614f4f91b968107875722293f0c8b4 Mon Sep 17 00:00:00 2001 From: Tayrtahn Date: Mon, 18 Mar 2024 09:37:49 -0400 Subject: [PATCH] Fix borg charger error (#26230) Fix borg chargers not working --- .../Power/EntitySystems/ChargerSystem.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Content.Server/Power/EntitySystems/ChargerSystem.cs b/Content.Server/Power/EntitySystems/ChargerSystem.cs index b6b718455d..db16dfa008 100644 --- a/Content.Server/Power/EntitySystems/ChargerSystem.cs +++ b/Content.Server/Power/EntitySystems/ChargerSystem.cs @@ -6,7 +6,6 @@ using Content.Shared.PowerCell.Components; using JetBrains.Annotations; using Robust.Shared.Containers; using System.Diagnostics.CodeAnalysis; -using System.Linq; using Content.Shared.Storage.Components; using Robust.Server.Containers; @@ -179,7 +178,7 @@ internal sealed class ChargerSystem : EntitySystem if (container.ContainedEntities.Count == 0) return CellChargerStatus.Empty; - if (!SearchForBattery(container.ContainedEntities.First(), out var heldBattery)) + if (!SearchForBattery(container.ContainedEntities[0], out _, out var heldBattery)) return CellChargerStatus.Off; if (Math.Abs(heldBattery.MaxCharge - heldBattery.CurrentCharge) < 0.01) @@ -199,27 +198,28 @@ internal sealed class ChargerSystem : EntitySystem if (component.Whitelist?.IsValid(targetEntity, EntityManager) == false) return; - if (!SearchForBattery(targetEntity, out var heldBattery)) + if (!SearchForBattery(targetEntity, out var batteryUid, out var heldBattery)) return; - _battery.SetCharge(targetEntity, heldBattery.CurrentCharge + component.ChargeRate * frameTime, heldBattery); + _battery.SetCharge(batteryUid.Value, heldBattery.CurrentCharge + component.ChargeRate * frameTime, heldBattery); // Just so the sprite won't be set to 99.99999% visibility if (heldBattery.MaxCharge - heldBattery.CurrentCharge < 0.01) { - _battery.SetCharge(targetEntity, heldBattery.MaxCharge, heldBattery); + _battery.SetCharge(batteryUid.Value, heldBattery.MaxCharge, heldBattery); } UpdateStatus(uid, component); } - private bool SearchForBattery(EntityUid uid, [NotNullWhen(true)] out BatteryComponent? component) + private bool SearchForBattery(EntityUid uid, [NotNullWhen(true)] out EntityUid? batteryUid, [NotNullWhen(true)] out BatteryComponent? component) { // try get a battery directly on the inserted entity if (!TryComp(uid, out component)) { // or by checking for a power cell slot on the inserted entity - return _powerCell.TryGetBatteryFromSlot(uid, out component); + return _powerCell.TryGetBatteryFromSlot(uid, out batteryUid, out component); } + batteryUid = uid; return true; } } -- 2.51.2