using Content.Shared.Clothing; using Content.Shared.IdentityManagement.Components; using Content.Shared.Inventory; using Robust.Shared.Containers; namespace Content.Shared.IdentityManagement; public abstract class SharedIdentitySystem : EntitySystem { [Dependency] private readonly SharedContainerSystem _container = default!; private static string SlotName = "identity"; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnComponentInit); SubscribeLocalEvent(OnSeeIdentity); SubscribeLocalEvent>((e, c, ev) => OnSeeIdentity(e, c, ev.Args)); SubscribeLocalEvent(OnMaskToggled); } private void OnSeeIdentity(EntityUid uid, IdentityBlockerComponent component, SeeIdentityAttemptEvent args) { if (component.Enabled) args.Cancel(); } protected virtual void OnComponentInit(EntityUid uid, IdentityComponent component, ComponentInit args) { component.IdentityEntitySlot = _container.EnsureContainer(uid, SlotName); } private void OnMaskToggled(Entity ent, ref ItemMaskToggledEvent args) { ent.Comp.Enabled = !args.IsToggled; } }