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;