using Content.Shared.Actions; using Content.Shared.Ninja.Systems; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Ninja.Components; /// /// Uses battery charge to spawn an item and place it in the user's hands. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(SharedItemCreatorSystem))] public sealed partial class ItemCreatorComponent : Component { /// /// The battery entity to use charge from /// [DataField, AutoNetworkedField] public EntityUid? Battery; /// /// The action id for creating an item. /// [DataField(required: true)] public EntProtoId Action = string.Empty; [DataField, AutoNetworkedField] public EntityUid? ActionEntity; /// /// Battery charge used to create an item. /// [DataField(required: true)] public float Charge = 14.4f; /// /// Item to create with the action /// [DataField(required: true)] public EntProtoId SpawnedPrototype = string.Empty; /// /// Popup shown to the user when there isn't enough power to create an item. /// [DataField(required: true)] public LocId NoPowerPopup = string.Empty; } /// /// Action event to use an . /// public sealed partial class CreateItemEvent : InstantActionEvent;