using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array;
using Robust.Shared.Utility;
namespace Content.Shared.Stacks;
[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; }
}