using Content.Shared.Hands.Components;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared.Silicons.Borgs.Components;
///
/// This is used for a that provides items to the entity it's installed into.
///
[RegisterComponent, NetworkedComponent, Access(typeof(SharedBorgSystem))]
public sealed partial class ItemBorgModuleComponent : Component
{
///
/// The hands that are provided.
///
[DataField(required: true)]
public List Hands = new();
///
/// The items stored within the hands. Null until the first time items are stored.
///
[DataField]
public Dictionary? StoredItems;
///
/// An ID for the container where items are stored when not in use.
///
[DataField]
public string HoldingContainer = "holding_container";
}
[DataDefinition, Serializable, NetSerializable]
public partial record struct BorgHand
{
[DataField]
public EntProtoId? Item;
[DataField]
public Hand Hand = new();
[DataField]
public bool ForceRemovable = false;
public BorgHand(EntProtoId? item, Hand hand, bool forceRemovable = false)
{
Item = item;
Hand = hand;
ForceRemovable = forceRemovable;
}
}