Remove 700 usages of Component.Owner (#21100)

This commit is contained in:
DrSmugleaf
2023-10-19 12:34:31 -07:00
committed by GitHub
parent 5825ffb95c
commit f560f88eb5
261 changed files with 2291 additions and 2036 deletions

View File

@@ -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));

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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>