Refactored PowerNet (#13287)
Closes https://github.com/space-wizards/space-station-14/issues/12353
This commit is contained in:
@@ -29,6 +29,7 @@ namespace Content.Server.Power.NodeGroups
|
||||
public sealed class PowerNet : BaseNetConnectorNodeGroup<IPowerNet>, IPowerNet
|
||||
{
|
||||
private PowerNetSystem? _powerNetSystem;
|
||||
private IEntityManager? _entMan;
|
||||
|
||||
[ViewVariables] public readonly List<PowerSupplierComponent> Suppliers = new();
|
||||
[ViewVariables] public readonly List<PowerConsumerComponent> Consumers = new();
|
||||
@@ -42,6 +43,8 @@ namespace Content.Server.Power.NodeGroups
|
||||
{
|
||||
base.Initialize(sourceNode, entMan);
|
||||
|
||||
_entMan = entMan;
|
||||
|
||||
_powerNetSystem = entMan.EntitySysManager.GetEntitySystem<PowerNetSystem>();
|
||||
_powerNetSystem.InitPowerNet(this);
|
||||
}
|
||||
@@ -92,7 +95,10 @@ namespace Content.Server.Power.NodeGroups
|
||||
|
||||
public void AddDischarger(BatteryDischargerComponent discharger)
|
||||
{
|
||||
var battery = IoCManager.Resolve<IEntityManager>().GetComponent<PowerNetworkBatteryComponent>(discharger.Owner);
|
||||
if (_entMan == null)
|
||||
return;
|
||||
|
||||
var battery = _entMan.GetComponent<PowerNetworkBatteryComponent>(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<IEntityManager>().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<IEntityManager>().GetComponent<PowerNetworkBatteryComponent>(charger.Owner);
|
||||
if (_entMan == null)
|
||||
return;
|
||||
|
||||
var battery = _entMan.GetComponent<PowerNetworkBatteryComponent>(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<IEntityManager>().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;
|
||||
|
||||
Reference in New Issue
Block a user