1
0

ParticleAcceleratorSystem.PowerBox.cs 1.1 KB

12345678910111213141516171819202122232425262728
  1. using Content.Server.ParticleAccelerator.Components;
  2. using Content.Server.Power.EntitySystems;
  3. namespace Content.Server.ParticleAccelerator.EntitySystems;
  4. public sealed partial class ParticleAcceleratorSystem
  5. {
  6. private void InitializePowerBoxSystem()
  7. {
  8. SubscribeLocalEvent<ParticleAcceleratorPowerBoxComponent, PowerConsumerReceivedChanged>(PowerBoxReceivedChanged);
  9. }
  10. private void PowerBoxReceivedChanged(EntityUid uid, ParticleAcceleratorPowerBoxComponent component, ref PowerConsumerReceivedChanged args)
  11. {
  12. if (!TryComp<ParticleAcceleratorPartComponent>(uid, out var part))
  13. return;
  14. if (!TryComp<ParticleAcceleratorControlBoxComponent>(part.Master, out var controller))
  15. return;
  16. var master = part.Master!.Value;
  17. if (controller.Enabled && args.ReceivedPower >= args.DrawRate * ParticleAcceleratorControlBoxComponent.RequiredPowerRatio)
  18. PowerOn(master, comp: controller);
  19. else
  20. PowerOff(master, comp: controller);
  21. UpdateUI(master, controller);
  22. }
  23. }