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; } }