using Content.Shared.DisplacementMap; using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Inventory; [RegisterComponent, NetworkedComponent] [Access(typeof(InventorySystem))] [AutoGenerateComponentState(true)] public sealed partial class InventoryComponent : Component { [DataField("templateId", customTypeSerializer: typeof(PrototypeIdSerializer))] [AutoNetworkedField] public string TemplateId { get; set; } = "human"; [DataField("speciesId")] public string? SpeciesId { get; set; } public SlotDefinition[] Slots = Array.Empty(); public ContainerSlot[] Containers = Array.Empty(); [DataField] public Dictionary Displacements = new(); /// /// Alternate displacement maps, which if available, will be selected for the player of the appropriate gender. /// [DataField] public Dictionary FemaleDisplacements = new(); /// /// Alternate displacement maps, which if available, will be selected for the player of the appropriate gender. /// [DataField] public Dictionary MaleDisplacements = new(); } /// /// Raised if the of an inventory changed. /// [ByRefEvent] public struct InventoryTemplateUpdated;