using Content.Shared.Actions;
using Content.Shared.Actions.Components;
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;
[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;