ApcPowerProviderComponent.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Content.Server.Power.NodeGroups;
  2. namespace Content.Server.Power.Components
  3. {
  4. [RegisterComponent]
  5. [ComponentProtoName("PowerProvider")]
  6. public sealed partial class ApcPowerProviderComponent : BaseApcNetComponent
  7. {
  8. [ViewVariables] public List<ApcPowerReceiverComponent> LinkedReceivers { get; } = new();
  9. public void AddReceiver(ApcPowerReceiverComponent receiver)
  10. {
  11. LinkedReceivers.Add(receiver);
  12. receiver.NetworkLoad.LinkedNetwork = default;
  13. Net?.QueueNetworkReconnect();
  14. }
  15. public void RemoveReceiver(ApcPowerReceiverComponent receiver)
  16. {
  17. LinkedReceivers.Remove(receiver);
  18. receiver.NetworkLoad.LinkedNetwork = default;
  19. Net?.QueueNetworkReconnect();
  20. }
  21. protected override void AddSelfToNet(IApcNet apcNet)
  22. {
  23. apcNet.AddPowerProvider(this);
  24. }
  25. protected override void RemoveSelfFromNet(IApcNet apcNet)
  26. {
  27. apcNet.RemovePowerProvider(this);
  28. }
  29. }
  30. }