diff --git a/Content.Server/Power/EntitySystems/ExtensionCableSystem.cs b/Content.Server/Power/EntitySystems/ExtensionCableSystem.cs index 32f0ab433c..83847eff56 100644 --- a/Content.Server/Power/EntitySystems/ExtensionCableSystem.cs +++ b/Content.Server/Power/EntitySystems/ExtensionCableSystem.cs @@ -104,7 +104,10 @@ namespace Content.Server.Power.EntitySystems RaiseLocalEvent(uid, new ProviderDisconnectedEvent(provider), broadcast: false); if (provider != null) + { RaiseLocalEvent(provider.Owner.Uid, new ReceiverDisconnectedEvent(receiver), broadcast: false); + provider.LinkedReceivers.Remove(receiver); + } receiver.ReceptionRange = range; TryFindAndSetProvider(receiver); @@ -146,9 +149,11 @@ namespace Content.Server.Power.EntitySystems { receiver.Connectable = false; RaiseLocalEvent(uid, new ProviderDisconnectedEvent(receiver.Provider), broadcast: false); - if (receiver.Provider != null) + { RaiseLocalEvent(receiver.Provider.Owner.Uid, new ReceiverDisconnectedEvent(receiver), broadcast: false); + receiver.Provider.LinkedReceivers.Remove(receiver); + } receiver.Provider = null; } @@ -159,6 +164,7 @@ namespace Content.Server.Power.EntitySystems if (!TryFindAvailableProvider(receiver.Owner, receiver.ReceptionRange, out var provider)) return; receiver.Provider = provider; + provider.LinkedReceivers.Add(receiver); RaiseLocalEvent(receiver.Owner.Uid, new ProviderConnectedEvent(provider), broadcast: false); RaiseLocalEvent(provider.Owner.Uid, new ReceiverConnectedEvent(receiver), broadcast: false); }