Faster Power (#596)

uses SnapGridComponent to select nearby wires instead of entity list (only marginally faster if entity queries are using DynamicTree)

TheoreticalLoad double dipping property setter, reduced to one update

minor refactoring

Co-authored-by: Tyler Young <tyler.young@impromptu.ninja>
This commit is contained in:
Tyler Young
2020-02-06 08:50:52 -05:00
committed by GitHub
parent fcccae5df0
commit ef751f68dc
4 changed files with 49 additions and 40 deletions

View File

@@ -23,7 +23,7 @@ namespace Content.Server.GameObjects.Components.Power
public override string Name => "PowerProvider";
/// <inheritdoc />
public override DrawTypes DrawType { get; protected set; } = DrawTypes.Node;
protected override DrawTypes DefaultDrawType => DrawTypes.Node;
protected override bool SaveLoad => false;
@@ -198,9 +198,9 @@ namespace Content.Server.GameObjects.Components.Power
base.PowernetConnect(sender, eventarg);
//Find devices within range to take under our control
var _emanager = IoCManager.Resolve<IServerEntityManager>();
var entMgr = IoCManager.Resolve<IServerEntityManager>();
var position = Owner.GetComponent<ITransformComponent>().WorldPosition;
var entities = _emanager.GetEntitiesInRange(Owner, PowerRange)
var entities = entMgr.GetEntitiesInRange(Owner, PowerRange)
.Where(x => x.HasComponent<PowerDeviceComponent>());
@@ -252,8 +252,7 @@ namespace Content.Server.GameObjects.Components.Power
{
if (DeviceLoadList.Contains(device))
{
TheoreticalLoad -= oldLoad;
TheoreticalLoad += device.Load;
TheoreticalLoad = TheoreticalLoad - oldLoad + device.Load;
}
}