1
0

SharedSingularityGeneratorSystem.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Content.Shared.Emag.Systems;
  2. using Content.Shared.Popups;
  3. using Content.Shared.Singularity.Components;
  4. namespace Content.Shared.Singularity.EntitySystems;
  5. /// <summary>
  6. /// Shared part of SingularitySingularityGeneratorSystem
  7. /// </summary>
  8. public abstract class SharedSingularityGeneratorSystem : EntitySystem
  9. {
  10. #region Dependencies
  11. [Dependency] protected readonly SharedPopupSystem PopupSystem = default!;
  12. [Dependency] private readonly EmagSystem _emag = default!;
  13. #endregion Dependencies
  14. public override void Initialize()
  15. {
  16. base.Initialize();
  17. SubscribeLocalEvent<SingularityGeneratorComponent, GotEmaggedEvent>(OnEmagged);
  18. }
  19. private void OnEmagged(EntityUid uid, SingularityGeneratorComponent component, ref GotEmaggedEvent args)
  20. {
  21. if (!_emag.CompareFlag(args.Type, EmagType.Interaction))
  22. return;
  23. if (_emag.CheckFlag(uid, EmagType.Interaction))
  24. return;
  25. if (component.FailsafeDisabled)
  26. return;
  27. component.FailsafeDisabled = true;
  28. args.Handled = true;
  29. }
  30. }