using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; using Robust.Shared.Utility; namespace Content.Shared.Stacks; /// /// Prototype used to combine and spawn like-entities for . /// [Prototype] public sealed partial class StackPrototype : IPrototype, IInheritingPrototype { /// [IdDataField] public string ID { get; private set; } = default!; /// [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] public string[]? Parents { get; private set; } /// [NeverPushInheritance] [AbstractDataField] public bool Abstract { get; private set; } /// /// Human-readable name for this stack type e.g. "Steel" /// /// This is a localization string ID. [DataField] public LocId Name { get; private set; } = string.Empty; /// /// An icon that will be used to represent this stack type. /// [DataField] public SpriteSpecifier? Icon { get; private set; } /// /// The entity id that will be spawned by default from this stack. /// [DataField(required: true)] public EntProtoId Spawn { get; private set; } = string.Empty; /// /// The maximum amount of things that can be in a stack, can be overriden on . /// If null, simply has unlimited max count. /// [DataField] public int? MaxCount { get; private set; } }