diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs index 8e1d103c15..4b6a11a870 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/ApcNetNodeGroup.cs @@ -35,8 +35,6 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups [ViewVariables] private int TotalReceivers => _providerReceivers.SelectMany(kvp => kvp.Value).Count(); - private IEnumerable AvailableBatteries => _apcBatteries.Where(kvp => kvp.Key.MainBreakerEnabled).Select(kvp => kvp.Value); - public static readonly IApcNet NullNet = new NullApcNet(); #region IApcNet Methods @@ -88,8 +86,11 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups { var totalCharge = 0.0; var totalMaxCharge = 0; - foreach (var battery in AvailableBatteries) + foreach (var (apc, battery) in _apcBatteries) { + if (!apc.MainBreakerEnabled) + continue; + totalCharge += battery.CurrentCharge; totalMaxCharge += battery.MaxCharge; } @@ -102,8 +103,11 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups private bool TryUsePower(float neededCharge) { - foreach (var battery in AvailableBatteries) + foreach (var (apc, battery) in _apcBatteries) { + if (!apc.MainBreakerEnabled) + continue; + if (battery.TryUseCharge(neededCharge)) //simplification - all power needed must come from one battery { return true;