Remove 700 usages of Component.Owner (#21100)
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Server.Stack;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Stacks;
|
||||
using Robust.Shared.Map;
|
||||
|
||||
namespace Content.Server.Power.EntitySystems;
|
||||
|
||||
@@ -18,11 +16,14 @@ public sealed partial class CableSystem
|
||||
SubscribeLocalEvent<CablePlacerComponent, AfterInteractEvent>(OnCablePlacerAfterInteract);
|
||||
}
|
||||
|
||||
private void OnCablePlacerAfterInteract(EntityUid uid, CablePlacerComponent component, AfterInteractEvent args)
|
||||
private void OnCablePlacerAfterInteract(Entity<CablePlacerComponent> placer, ref AfterInteractEvent args)
|
||||
{
|
||||
if (args.Handled || !args.CanReach) return;
|
||||
if (args.Handled || !args.CanReach)
|
||||
return;
|
||||
|
||||
if (component.CablePrototypeId == null) return;
|
||||
var component = placer.Comp;
|
||||
if (component.CablePrototypeId == null)
|
||||
return;
|
||||
|
||||
if(!_mapManager.TryGetGrid(args.ClickLocation.GetGridUid(EntityManager), out var grid))
|
||||
return;
|
||||
@@ -39,7 +40,7 @@ public sealed partial class CableSystem
|
||||
return;
|
||||
}
|
||||
|
||||
if (TryComp<StackComponent>(component.Owner, out var stack) && !_stack.Use(component.Owner, 1, stack))
|
||||
if (TryComp<StackComponent>(placer, out var stack) && !_stack.Use(placer, 1, stack))
|
||||
return;
|
||||
|
||||
var newCable = EntityManager.SpawnEntity(component.CablePrototypeId, grid.GridTileToLocal(snapPos));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using Content.Server.Power.Components;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Physics;
|
||||
using Robust.Shared.Physics.Components;
|
||||
|
||||
@@ -50,9 +50,10 @@ namespace Content.Server.Power.EntitySystems
|
||||
var xform = Transform(uid);
|
||||
|
||||
// If grid deleting no need to update power.
|
||||
if (_mapManager.TryGetGrid(xform.GridUid, out var grid))
|
||||
if (HasComp<MapGridComponent>(xform.GridUid) &&
|
||||
MetaData(xform.GridUid.Value).EntityLifeStage > EntityLifeStage.MapInitialized)
|
||||
{
|
||||
if (MetaData(grid.Owner).EntityLifeStage > EntityLifeStage.MapInitialized) return;
|
||||
return;
|
||||
}
|
||||
|
||||
Disconnect(uid, provider);
|
||||
@@ -72,10 +73,10 @@ namespace Content.Server.Power.EntitySystems
|
||||
|
||||
foreach (var receiver in FindAvailableReceivers(uid, provider.TransferRange))
|
||||
{
|
||||
receiver.Provider?.LinkedReceivers.Remove(receiver);
|
||||
receiver.Provider = provider;
|
||||
receiver.Comp.Provider?.LinkedReceivers.Remove(receiver);
|
||||
receiver.Comp.Provider = provider;
|
||||
provider.LinkedReceivers.Add(receiver);
|
||||
RaiseLocalEvent(receiver.Owner, new ProviderConnectedEvent(provider), broadcast: false);
|
||||
RaiseLocalEvent(receiver, new ProviderConnectedEvent(provider), broadcast: false);
|
||||
RaiseLocalEvent(uid, new ReceiverConnectedEvent(receiver), broadcast: false);
|
||||
}
|
||||
}
|
||||
@@ -95,34 +96,37 @@ namespace Content.Server.Power.EntitySystems
|
||||
|
||||
private void ResetReceivers(ExtensionCableProviderComponent provider)
|
||||
{
|
||||
var providerId = provider.Owner;
|
||||
var receivers = provider.LinkedReceivers.ToArray();
|
||||
provider.LinkedReceivers.Clear();
|
||||
|
||||
foreach (var receiver in receivers)
|
||||
{
|
||||
var receiverId = receiver.Owner;
|
||||
receiver.Provider = null;
|
||||
RaiseLocalEvent(receiver.Owner, new ProviderDisconnectedEvent(provider), broadcast: false);
|
||||
RaiseLocalEvent(provider.Owner, new ReceiverDisconnectedEvent(receiver), broadcast: false);
|
||||
RaiseLocalEvent(receiverId, new ProviderDisconnectedEvent(provider), broadcast: false);
|
||||
RaiseLocalEvent(providerId, new ReceiverDisconnectedEvent((receiverId, receiver)), broadcast: false);
|
||||
}
|
||||
|
||||
foreach (var receiver in receivers)
|
||||
{
|
||||
// No point resetting what the receiver is doing if it's deleting, plus significant perf savings
|
||||
// in not doing needless lookups
|
||||
if (!EntityManager.IsQueuedForDeletion(receiver.Owner)
|
||||
&& MetaData(receiver.Owner).EntityLifeStage <= EntityLifeStage.MapInitialized)
|
||||
var receiverId = receiver.Owner;
|
||||
if (!EntityManager.IsQueuedForDeletion(receiverId)
|
||||
&& MetaData(receiverId).EntityLifeStage <= EntityLifeStage.MapInitialized)
|
||||
{
|
||||
TryFindAndSetProvider(receiver);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<ExtensionCableReceiverComponent> FindAvailableReceivers(EntityUid owner, float range)
|
||||
private IEnumerable<Entity<ExtensionCableReceiverComponent>> FindAvailableReceivers(EntityUid owner, float range)
|
||||
{
|
||||
var xform = Transform(owner);
|
||||
var coordinates = xform.Coordinates;
|
||||
|
||||
if (!_mapManager.TryGetGrid(xform.GridUid, out var grid))
|
||||
if (!TryComp(xform.GridUid, out MapGridComponent? grid))
|
||||
yield break;
|
||||
|
||||
var nearbyEntities = grid.GetCellsInSquareArea(coordinates, (int) Math.Ceiling(range / grid.TileSize));
|
||||
@@ -142,7 +146,7 @@ namespace Content.Server.Power.EntitySystems
|
||||
continue;
|
||||
|
||||
if ((Transform(entity).LocalPosition - xform.LocalPosition).Length() < Math.Min(range, receiver.ReceptionRange))
|
||||
yield return receiver;
|
||||
yield return (entity, receiver);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,7 +165,7 @@ namespace Content.Server.Power.EntitySystems
|
||||
|
||||
if (provider != null)
|
||||
{
|
||||
RaiseLocalEvent(provider.Owner, new ReceiverDisconnectedEvent(receiver), broadcast: false);
|
||||
RaiseLocalEvent(provider.Owner, new ReceiverDisconnectedEvent((uid, receiver)), broadcast: false);
|
||||
provider.LinkedReceivers.Remove(receiver);
|
||||
}
|
||||
|
||||
@@ -220,7 +224,7 @@ namespace Content.Server.Power.EntitySystems
|
||||
RaiseLocalEvent(uid, new ProviderDisconnectedEvent(receiver.Provider), broadcast: false);
|
||||
if (receiver.Provider != null)
|
||||
{
|
||||
RaiseLocalEvent(receiver.Provider.Owner, new ReceiverDisconnectedEvent(receiver), broadcast: false);
|
||||
RaiseLocalEvent(receiver.Provider.Owner, new ReceiverDisconnectedEvent((uid, receiver)), broadcast: false);
|
||||
receiver.Provider.LinkedReceivers.Remove(receiver);
|
||||
}
|
||||
|
||||
@@ -229,19 +233,22 @@ namespace Content.Server.Power.EntitySystems
|
||||
|
||||
private void TryFindAndSetProvider(ExtensionCableReceiverComponent receiver, TransformComponent? xform = null)
|
||||
{
|
||||
if (!receiver.Connectable) return;
|
||||
var uid = receiver.Owner;
|
||||
if (!receiver.Connectable)
|
||||
return;
|
||||
|
||||
if (!TryFindAvailableProvider(receiver.Owner, receiver.ReceptionRange, out var provider, xform)) return;
|
||||
if (!TryFindAvailableProvider(uid, receiver.ReceptionRange, out var provider, xform))
|
||||
return;
|
||||
|
||||
receiver.Provider = provider;
|
||||
provider.LinkedReceivers.Add(receiver);
|
||||
RaiseLocalEvent(receiver.Owner, new ProviderConnectedEvent(provider), broadcast: false);
|
||||
RaiseLocalEvent(provider.Owner, new ReceiverConnectedEvent(receiver), broadcast: false);
|
||||
RaiseLocalEvent(uid, new ProviderConnectedEvent(provider), broadcast: false);
|
||||
RaiseLocalEvent(provider.Owner, new ReceiverConnectedEvent((uid, receiver)), broadcast: false);
|
||||
}
|
||||
|
||||
private bool TryFindAvailableProvider(EntityUid owner, float range, [NotNullWhen(true)] out ExtensionCableProviderComponent? foundProvider, TransformComponent? xform = null)
|
||||
{
|
||||
if (!Resolve(owner, ref xform) || !_mapManager.TryGetGrid(xform.GridUid, out var grid))
|
||||
if (!Resolve(owner, ref xform) || !TryComp(xform.GridUid, out MapGridComponent? grid))
|
||||
{
|
||||
foundProvider = null;
|
||||
return false;
|
||||
@@ -330,9 +337,9 @@ namespace Content.Server.Power.EntitySystems
|
||||
/// <summary>
|
||||
/// The <see cref="ExtensionCableReceiverComponent"/> that connected.
|
||||
/// </summary>
|
||||
public ExtensionCableReceiverComponent Receiver;
|
||||
public Entity<ExtensionCableReceiverComponent> Receiver;
|
||||
|
||||
public ReceiverConnectedEvent(ExtensionCableReceiverComponent receiver)
|
||||
public ReceiverConnectedEvent(Entity<ExtensionCableReceiverComponent> receiver)
|
||||
{
|
||||
Receiver = receiver;
|
||||
}
|
||||
@@ -345,9 +352,9 @@ namespace Content.Server.Power.EntitySystems
|
||||
/// <summary>
|
||||
/// The <see cref="ExtensionCableReceiverComponent"/> that disconnected.
|
||||
/// </summary>
|
||||
public ExtensionCableReceiverComponent Receiver;
|
||||
public Entity<ExtensionCableReceiverComponent> Receiver;
|
||||
|
||||
public ReceiverDisconnectedEvent(ExtensionCableReceiverComponent receiver)
|
||||
public ReceiverDisconnectedEvent(Entity<ExtensionCableReceiverComponent> receiver)
|
||||
{
|
||||
Receiver = receiver;
|
||||
}
|
||||
|
||||
@@ -312,7 +312,7 @@ namespace Content.Server.Power.EntitySystems
|
||||
apcReceiver.PoweredLastUpdate = powered;
|
||||
var ev = new PowerChangedEvent(apcReceiver.Powered, apcReceiver.NetworkLoad.ReceivingPower);
|
||||
|
||||
RaiseLocalEvent(apcReceiver.Owner, ref ev);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
|
||||
if (appearanceQuery.TryGetComponent(uid, out var appearance))
|
||||
_appearance.SetData(uid, PowerDeviceVisuals.Powered, powered, appearance);
|
||||
@@ -342,7 +342,7 @@ namespace Content.Server.Power.EntitySystems
|
||||
private void UpdateNetworkBattery()
|
||||
{
|
||||
var enumerator = EntityQueryEnumerator<PowerNetworkBatteryComponent>();
|
||||
while (enumerator.MoveNext(out var powerNetBattery))
|
||||
while (enumerator.MoveNext(out var uid, out var powerNetBattery))
|
||||
{
|
||||
var lastSupply = powerNetBattery.LastSupply;
|
||||
var currentSupply = powerNetBattery.CurrentSupply;
|
||||
@@ -350,12 +350,12 @@ namespace Content.Server.Power.EntitySystems
|
||||
if (lastSupply == 0f && currentSupply != 0f)
|
||||
{
|
||||
var ev = new PowerNetBatterySupplyEvent(true);
|
||||
RaiseLocalEvent(powerNetBattery.Owner, ref ev);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
}
|
||||
else if (lastSupply > 0f && currentSupply == 0f)
|
||||
{
|
||||
var ev = new PowerNetBatterySupplyEvent(false);
|
||||
RaiseLocalEvent(powerNetBattery.Owner, ref ev);
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
}
|
||||
|
||||
powerNetBattery.LastSupply = currentSupply;
|
||||
|
||||
@@ -73,35 +73,35 @@ namespace Content.Server.Power.EntitySystems
|
||||
component.LinkedReceivers.Clear();
|
||||
}
|
||||
|
||||
private void OnProviderConnected(EntityUid uid, ApcPowerReceiverComponent receiver, ExtensionCableSystem.ProviderConnectedEvent args)
|
||||
private void OnProviderConnected(Entity<ApcPowerReceiverComponent> receiver, ref ExtensionCableSystem.ProviderConnectedEvent args)
|
||||
{
|
||||
var providerUid = args.Provider.Owner;
|
||||
if (!EntityManager.TryGetComponent<ApcPowerProviderComponent>(providerUid, out var provider))
|
||||
return;
|
||||
|
||||
receiver.Provider = provider;
|
||||
receiver.Comp.Provider = provider;
|
||||
|
||||
ProviderChanged(receiver);
|
||||
}
|
||||
|
||||
private void OnProviderDisconnected(EntityUid uid, ApcPowerReceiverComponent receiver, ExtensionCableSystem.ProviderDisconnectedEvent args)
|
||||
private void OnProviderDisconnected(Entity<ApcPowerReceiverComponent> receiver, ref ExtensionCableSystem.ProviderDisconnectedEvent args)
|
||||
{
|
||||
receiver.Provider = null;
|
||||
receiver.Comp.Provider = null;
|
||||
|
||||
ProviderChanged(receiver);
|
||||
}
|
||||
|
||||
private void OnReceiverConnected(EntityUid uid, ApcPowerProviderComponent provider, ExtensionCableSystem.ReceiverConnectedEvent args)
|
||||
private void OnReceiverConnected(Entity<ApcPowerProviderComponent> provider, ref ExtensionCableSystem.ReceiverConnectedEvent args)
|
||||
{
|
||||
if (EntityManager.TryGetComponent(args.Receiver.Owner, out ApcPowerReceiverComponent? receiver))
|
||||
if (EntityManager.TryGetComponent(args.Receiver, out ApcPowerReceiverComponent? receiver))
|
||||
{
|
||||
provider.AddReceiver(receiver);
|
||||
provider.Comp.AddReceiver(receiver);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnReceiverDisconnected(EntityUid uid, ApcPowerProviderComponent provider, ExtensionCableSystem.ReceiverDisconnectedEvent args)
|
||||
{
|
||||
if (EntityManager.TryGetComponent(args.Receiver.Owner, out ApcPowerReceiverComponent? receiver))
|
||||
if (EntityManager.TryGetComponent(args.Receiver, out ApcPowerReceiverComponent? receiver))
|
||||
{
|
||||
provider.RemoveReceiver(receiver);
|
||||
}
|
||||
@@ -134,13 +134,14 @@ namespace Content.Server.Power.EntitySystems
|
||||
args.Verbs.Add(verb);
|
||||
}
|
||||
|
||||
private void ProviderChanged(ApcPowerReceiverComponent receiver)
|
||||
private void ProviderChanged(Entity<ApcPowerReceiverComponent> receiver)
|
||||
{
|
||||
receiver.NetworkLoad.LinkedNetwork = default;
|
||||
var ev = new PowerChangedEvent(receiver.Powered, receiver.NetworkLoad.ReceivingPower);
|
||||
var comp = receiver.Comp;
|
||||
comp.NetworkLoad.LinkedNetwork = default;
|
||||
var ev = new PowerChangedEvent(comp.Powered, comp.NetworkLoad.ReceivingPower);
|
||||
|
||||
RaiseLocalEvent(receiver.Owner, ref ev);
|
||||
_appearance.SetData(receiver.Owner, PowerDeviceVisuals.Powered, receiver.Powered);
|
||||
RaiseLocalEvent(receiver, ref ev);
|
||||
_appearance.SetData(receiver, PowerDeviceVisuals.Powered, comp.Powered);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user