using Content.Shared.Emag.Systems; using Content.Shared.Popups; using Content.Shared.Silicons.Laws.Components; using Content.Shared.Wires; namespace Content.Shared.Silicons.Laws; /// /// This handles getting and displaying the laws for silicons. /// public abstract class SharedSiliconLawSystem : EntitySystem { [Dependency] private readonly SharedPopupSystem _popup = default!; /// public override void Initialize() { SubscribeLocalEvent(OnGotEmagged); } protected virtual void OnGotEmagged(EntityUid uid, EmagSiliconLawComponent component, ref GotEmaggedEvent args) { if (component.RequireOpenPanel && TryComp(uid, out var panel) && !panel.Open) { _popup.PopupClient(Loc.GetString("law-emag-require-panel"), uid, args.UserUid); return; } component.OwnerName = Name(args.UserUid); args.Handled = true; } }