using Content.Shared.Emag.Systems; using Content.Shared.Popups; using Content.Shared.Singularity.Components; namespace Content.Shared.Singularity.EntitySystems; /// /// Shared part of SingularitySingularityGeneratorSystem /// public abstract class SharedSingularityGeneratorSystem : EntitySystem { #region Dependencies [Dependency] protected readonly SharedPopupSystem PopupSystem = default!; [Dependency] private readonly EmagSystem _emag = default!; #endregion Dependencies public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnEmagged); } private void OnEmagged(EntityUid uid, SingularityGeneratorComponent component, ref GotEmaggedEvent args) { if (!_emag.CompareFlag(args.Type, EmagType.Interaction)) return; if (_emag.CheckFlag(uid, EmagType.Interaction)) return; if (component.FailsafeDisabled) return; component.FailsafeDisabled = true; args.Handled = true; } }