Replace resolve dependency with attribute in components (#1995)

* Replace resolve dependency with attribute in components

* Add changes that went missing in translation
This commit is contained in:
DrSmugleaf
2020-09-02 01:30:03 +02:00
committed by GitHub
parent 4044602187
commit de9dfefd61
23 changed files with 85 additions and 66 deletions

View File

@@ -24,6 +24,9 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents
[RegisterComponent]
public class PowerProviderComponent : BaseApcNetComponent, IPowerProvider
{
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IServerEntityManager _serverEntityManager;
public override string Name => "PowerProvider";
/// <summary>
@@ -91,14 +94,13 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents
private List<PowerReceiverComponent> FindAvailableReceivers()
{
var mapManager = IoCManager.Resolve<IMapManager>();
var nearbyEntities = IoCManager.Resolve<IServerEntityManager>()
var nearbyEntities = _serverEntityManager
.GetEntitiesInRange(Owner, PowerTransferRange);
return nearbyEntities.Select(entity => entity.TryGetComponent<PowerReceiverComponent>(out var receiver) ? receiver : null)
.Where(receiver => receiver != null)
.Where(receiver => receiver.Connectable)
.Where(receiver => receiver.NeedsProvider)
.Where(receiver => receiver.Owner.Transform.GridPosition.Distance(mapManager, Owner.Transform.GridPosition) < Math.Min(PowerTransferRange, receiver.PowerReceptionRange))
.Where(receiver => receiver.Owner.Transform.GridPosition.Distance(_mapManager, Owner.Transform.GridPosition) < Math.Min(PowerTransferRange, receiver.PowerReceptionRange))
.ToList();
}

View File

@@ -21,6 +21,9 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents
[RegisterComponent]
public class PowerReceiverComponent : Component, IExamine
{
[Dependency] private readonly IServerEntityManager _serverEntityManager = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
public override string Name => "PowerReceiver";
public event EventHandler<PowerStateEventArgs> OnPowerStateChanged;
@@ -116,16 +119,16 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents
private bool TryFindAvailableProvider(out IPowerProvider foundProvider)
{
var nearbyEntities = IoCManager.Resolve<IServerEntityManager>()
var nearbyEntities = _serverEntityManager
.GetEntitiesInRange(Owner, PowerReceptionRange);
var mapManager = IoCManager.Resolve<IMapManager>();
foreach (var entity in nearbyEntities)
{
if (entity.TryGetComponent<PowerProviderComponent>(out var provider))
{
if (provider.Connectable)
{
var distanceToProvider = provider.Owner.Transform.GridPosition.Distance(mapManager, Owner.Transform.GridPosition);
var distanceToProvider = provider.Owner.Transform.GridPosition.Distance(_mapManager, Owner.Transform.GridPosition);
if (distanceToProvider < Math.Min(PowerReceptionRange, provider.PowerTransferRange))
{
foundProvider = provider;