Revert "Update submodule (again)" (#7730)

This commit is contained in:
metalgearsloth
2022-04-24 02:26:00 +10:00
committed by GitHub
parent 7feea724fd
commit ecaad9c349
36 changed files with 151 additions and 292 deletions

View File

@@ -25,10 +25,7 @@ namespace Content.Server.Power.EntitySystems
//Anchoring
SubscribeLocalEvent<ExtensionCableReceiverComponent, AnchorStateChangedEvent>(OnReceiverAnchorStateChanged);
SubscribeLocalEvent<ExtensionCableReceiverComponent, ReAnchorEvent>(OnReceiverReAnchor);
SubscribeLocalEvent<ExtensionCableProviderComponent, AnchorStateChangedEvent>(OnProviderAnchorStateChanged);
SubscribeLocalEvent<ExtensionCableProviderComponent, ReAnchorEvent>(OnProviderReAnchor);
}
#region Provider
@@ -44,7 +41,14 @@ namespace Content.Server.Power.EntitySystems
private void OnProviderStarted(EntityUid uid, ExtensionCableProviderComponent provider, ComponentStartup args)
{
Connect(uid, provider);
foreach (var receiver in FindAvailableReceivers(uid, provider.TransferRange))
{
receiver.Provider?.LinkedReceivers.Remove(receiver);
receiver.Provider = provider;
provider.LinkedReceivers.Add(receiver);
RaiseLocalEvent(receiver.Owner, new ProviderConnectedEvent(provider), broadcast: false);
RaiseLocalEvent(uid, new ReceiverConnectedEvent(receiver), broadcast: false);
}
}
private void OnProviderShutdown(EntityUid uid, ExtensionCableProviderComponent provider, ComponentShutdown args)
@@ -57,42 +61,32 @@ namespace Content.Server.Power.EntitySystems
if (MetaData(grid.GridEntityId).EntityLifeStage > EntityLifeStage.MapInitialized) return;
}
Disconnect(uid, provider);
provider.Connectable = false;
ResetReceivers(provider);
}
private void OnProviderAnchorStateChanged(EntityUid uid, ExtensionCableProviderComponent provider, ref AnchorStateChangedEvent args)
{
if (args.Anchored)
Connect(uid, provider);
else
Disconnect(uid, provider);
}
private void Connect(EntityUid uid, ExtensionCableProviderComponent provider)
{
provider.Connectable = true;
foreach (var receiver in FindAvailableReceivers(uid, provider.TransferRange))
{
receiver.Provider?.LinkedReceivers.Remove(receiver);
receiver.Provider = provider;
provider.LinkedReceivers.Add(receiver);
RaiseLocalEvent(receiver.Owner, new ProviderConnectedEvent(provider), broadcast: false);
RaiseLocalEvent(uid, new ReceiverConnectedEvent(receiver), broadcast: false);
provider.Connectable = true;
// same as OnProviderStarted
foreach (var receiver in FindAvailableReceivers(uid, provider.TransferRange))
{
receiver.Provider?.LinkedReceivers.Remove(receiver);
receiver.Provider = provider;
provider.LinkedReceivers.Add(receiver);
RaiseLocalEvent(receiver.Owner, new ProviderConnectedEvent(provider), broadcast: false);
RaiseLocalEvent(uid, new ReceiverConnectedEvent(receiver), broadcast: false);
}
}
else
{
// same as OnProviderShutdown
provider.Connectable = false;
ResetReceivers(provider);
}
}
private void Disconnect(EntityUid uid, ExtensionCableProviderComponent provider)
{
// same as OnProviderShutdown
provider.Connectable = false;
ResetReceivers(provider);
}
private void OnProviderReAnchor(EntityUid uid, ExtensionCableProviderComponent component, ref ReAnchorEvent args)
{
Disconnect(uid, component);
Connect(uid, component);
}
private void ResetReceivers(ExtensionCableProviderComponent provider)
@@ -185,49 +179,37 @@ namespace Content.Server.Power.EntitySystems
private void OnReceiverShutdown(EntityUid uid, ExtensionCableReceiverComponent receiver, ComponentShutdown args)
{
Disconnect(uid, receiver);
if (receiver.Provider == null) return;
receiver.Provider.LinkedReceivers.Remove(receiver);
RaiseLocalEvent(uid, new ProviderDisconnectedEvent(receiver.Provider), broadcast: false);
RaiseLocalEvent(receiver.Provider.Owner, new ReceiverDisconnectedEvent(receiver), broadcast: false);
}
private void OnReceiverAnchorStateChanged(EntityUid uid, ExtensionCableReceiverComponent receiver, ref AnchorStateChangedEvent args)
{
if (args.Anchored)
{
Connect(uid, receiver);
receiver.Connectable = true;
if (receiver.Provider == null)
{
TryFindAndSetProvider(receiver);
}
}
else
{
Disconnect(uid, receiver);
receiver.Connectable = false;
RaiseLocalEvent(uid, new ProviderDisconnectedEvent(receiver.Provider), broadcast: false);
if (receiver.Provider != null)
{
RaiseLocalEvent(receiver.Provider.Owner, new ReceiverDisconnectedEvent(receiver), broadcast: false);
receiver.Provider.LinkedReceivers.Remove(receiver);
}
receiver.Provider = null;
}
}
private void OnReceiverReAnchor(EntityUid uid, ExtensionCableReceiverComponent receiver, ref ReAnchorEvent args)
{
Disconnect(uid, receiver);
Connect(uid, receiver);
}
private void Connect(EntityUid uid, ExtensionCableReceiverComponent receiver)
{
receiver.Connectable = true;
if (receiver.Provider == null)
{
TryFindAndSetProvider(receiver);
}
}
private void Disconnect(EntityUid uid, ExtensionCableReceiverComponent receiver)
{
receiver.Connectable = false;
RaiseLocalEvent(uid, new ProviderDisconnectedEvent(receiver.Provider), broadcast: false);
if (receiver.Provider != null)
{
RaiseLocalEvent(receiver.Provider.Owner, new ReceiverDisconnectedEvent(receiver), broadcast: false);
receiver.Provider.LinkedReceivers.Remove(receiver);
}
receiver.Provider = null;
}
private void TryFindAndSetProvider(ExtensionCableReceiverComponent receiver, TransformComponent? xform = null)
{
if (!receiver.Connectable) return;