using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; 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 items that are provided. /// [DataField("items", customTypeSerializer: typeof(PrototypeIdListSerializer), required: true)] public List Items = new(); /// /// The entities from that were spawned. /// [DataField("providedItems")] public SortedDictionary ProvidedItems = new(); /// /// A counter that ensures a unique /// [DataField("handCounter")] public int HandCounter; /// /// Whether or not the items have been created and stored in /// [DataField("itemsCrated")] public bool ItemsCreated; /// /// A container where provided items are stored when not being used. /// This is helpful as it means that items retain state. /// [ViewVariables] public Container ProvidedContainer = default!; /// /// An ID for the container where provided items are stored when not used. /// [DataField("providedContainerId")] public string ProvidedContainerId = "provided_container"; }