From ba0510b62e8e4caf1377ce3da7afa4ac48a37538 Mon Sep 17 00:00:00 2001 From: 778b <33431126+778b@users.noreply.github.com> Date: Wed, 4 Jan 2023 22:43:05 +0400 Subject: [PATCH] Refactored PowerNet (#13287) Closes https://github.com/space-wizards/space-station-14/issues/12353 --- Content.Server/Power/NodeGroups/PowerNet.cs | 23 +++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/Content.Server/Power/NodeGroups/PowerNet.cs b/Content.Server/Power/NodeGroups/PowerNet.cs index cdf8b19c4f..a266c98499 100644 --- a/Content.Server/Power/NodeGroups/PowerNet.cs +++ b/Content.Server/Power/NodeGroups/PowerNet.cs @@ -29,6 +29,7 @@ namespace Content.Server.Power.NodeGroups public sealed class PowerNet : BaseNetConnectorNodeGroup, IPowerNet { private PowerNetSystem? _powerNetSystem; + private IEntityManager? _entMan; [ViewVariables] public readonly List Suppliers = new(); [ViewVariables] public readonly List Consumers = new(); @@ -42,6 +43,8 @@ namespace Content.Server.Power.NodeGroups { base.Initialize(sourceNode, entMan); + _entMan = entMan; + _powerNetSystem = entMan.EntitySysManager.GetEntitySystem(); _powerNetSystem.InitPowerNet(this); } @@ -92,7 +95,10 @@ namespace Content.Server.Power.NodeGroups public void AddDischarger(BatteryDischargerComponent discharger) { - var battery = IoCManager.Resolve().GetComponent(discharger.Owner); + if (_entMan == null) + return; + + var battery = _entMan.GetComponent(discharger.Owner); DebugTools.Assert(battery.NetworkBattery.LinkedNetworkDischarging == default); battery.NetworkBattery.LinkedNetworkDischarging = default; Dischargers.Add(discharger); @@ -101,8 +107,11 @@ namespace Content.Server.Power.NodeGroups public void RemoveDischarger(BatteryDischargerComponent discharger) { + if (_entMan == null) + return; + // Can be missing if the entity is being deleted, not a big deal. - if (IoCManager.Resolve().TryGetComponent(discharger.Owner, out PowerNetworkBatteryComponent? battery)) + if (_entMan.TryGetComponent(discharger.Owner, out PowerNetworkBatteryComponent? battery)) { DebugTools.Assert(battery.NetworkBattery.LinkedNetworkDischarging == NetworkNode.Id); battery.NetworkBattery.LinkedNetworkDischarging = default; @@ -114,7 +123,10 @@ namespace Content.Server.Power.NodeGroups public void AddCharger(BatteryChargerComponent charger) { - var battery = IoCManager.Resolve().GetComponent(charger.Owner); + if (_entMan == null) + return; + + var battery = _entMan.GetComponent(charger.Owner); DebugTools.Assert(battery.NetworkBattery.LinkedNetworkCharging == default); battery.NetworkBattery.LinkedNetworkCharging = default; Chargers.Add(charger); @@ -123,8 +135,11 @@ namespace Content.Server.Power.NodeGroups public void RemoveCharger(BatteryChargerComponent charger) { + if (_entMan == null) + return; + // Can be missing if the entity is being deleted, not a big deal. - if (IoCManager.Resolve().TryGetComponent(charger.Owner, out PowerNetworkBatteryComponent? battery)) + if (_entMan.TryGetComponent(charger.Owner, out PowerNetworkBatteryComponent? battery)) { DebugTools.Assert(battery.NetworkBattery.LinkedNetworkCharging == NetworkNode.Id); battery.NetworkBattery.LinkedNetworkCharging = default;