Horrendously makes PowerDevice connect to the closest Provider (#326)

* Somewhat decently makes PowerDevice connect to the closest Provider

* Fix NullRef on server shutdown

* Fix null reference

* piss

* revert bad fix
This commit is contained in:
DamianX
2019-09-06 10:05:17 +02:00
committed by Pieter-Jan Briers
parent 36078382e4
commit 0815050b2a
2 changed files with 24 additions and 0 deletions

View File

@@ -3,7 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using Content.Server.GameObjects.EntitySystems;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
using Robust.Shared.ViewVariables;
@@ -18,6 +21,17 @@ namespace Content.Server.GameObjects.Components.Power
{
public override string Name => "PowerDevice";
public override void Startup()
{
base.Startup();
if (_drawType != DrawTypes.Node)
{
var componentMgr = IoCManager.Resolve<IComponentManager>();
AvailableProviders = componentMgr.GetAllComponents<PowerProviderComponent>().Where(x => x.CanServiceDevice(this)).ToList();
ConnectToBestProvider();
}
}
/// <summary>
/// The method of draw we will try to use to place our load set via component parameter, defaults to using power providers
/// </summary>
@@ -161,6 +175,8 @@ namespace Content.Server.GameObjects.Components.Power
node.OnPowernetRegenerate -= PowernetRegenerate;
}
Connected = DrawTypes.None;
if (Provider != null)
{
Provider = null;