using Content.Shared.DoAfter; using Content.Shared.Ninja.Systems; using Content.Shared.Toggleable; using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Utility; namespace Content.Shared.Ninja.Components; /// /// Component for toggling glove powers. /// Powers being enabled is controlled by User not being null. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(SharedNinjaGlovesSystem))] public sealed partial class NinjaGlovesComponent : Component { /// /// Entity of the ninja using these gloves, usually means enabled /// [DataField("user"), AutoNetworkedField] public EntityUid? User; /// /// The action id for toggling ninja gloves abilities /// [DataField("toggleAction", customTypeSerializer: typeof(PrototypeIdSerializer))] public string ToggleAction = "ActionToggleNinjaGloves"; [DataField, AutoNetworkedField] public EntityUid? ToggleActionEntity; /// /// The whitelist used for the emag provider to emag airlocks only (not regular doors). /// [DataField("doorjackWhitelist")] public EntityWhitelist DoorjackWhitelist = new() { Components = new[] {"Airlock"} }; }