Make item size scale with stack size (#17623)

* Make stack count affect item size

* and the test, too

* readd this check

* vwoom

* huh

* if you ever read this commit message ping me on discord in #contributors

* changerinos
This commit is contained in:
Nemanja
2023-06-25 11:44:37 -04:00
committed by GitHub
parent 0d086df2e5
commit 5c60a27c7c
39 changed files with 399 additions and 81 deletions

View File

@@ -2,40 +2,46 @@
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.Utility;
namespace Content.Shared.Stacks
namespace Content.Shared.Stacks;
[Prototype("stack")]
public sealed class StackPrototype : IPrototype
{
[Prototype("stack")]
public sealed class StackPrototype : IPrototype
{
[ViewVariables]
[IdDataField]
public string ID { get; } = default!;
[ViewVariables]
[IdDataField]
public string ID { get; } = default!;
/// <summary>
/// Human-readable name for this stack type e.g. "Steel"
/// </summary>
/// <remarks>This is a localization string ID.</remarks>
[DataField("name")]
public string Name { get; } = string.Empty;
/// <summary>
/// Human-readable name for this stack type e.g. "Steel"
/// </summary>
/// <remarks>This is a localization string ID.</remarks>
[DataField("name")]
public string Name { get; } = string.Empty;
/// <summary>
/// An icon that will be used to represent this stack type.
/// </summary>
[DataField("icon")]
public SpriteSpecifier? Icon { get; }
/// <summary>
/// An icon that will be used to represent this stack type.
/// </summary>
[DataField("icon")]
public SpriteSpecifier? Icon { get; }
/// <summary>
/// The entity id that will be spawned by default from this stack.
/// </summary>
[DataField("spawn", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
public string Spawn { get; } = string.Empty;
/// <summary>
/// The entity id that will be spawned by default from this stack.
/// </summary>
[DataField("spawn", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
public string Spawn { get; } = string.Empty;
/// <summary>
/// The maximum amount of things that can be in a stack.
/// Can be overriden on <see cref="StackComponent"/>
/// if null, simply has unlimited max count.
/// </summary>
[DataField("maxCount")]
public int? MaxCount { get; }
}
/// <summary>
/// The maximum amount of things that can be in a stack.
/// Can be overriden on <see cref="StackComponent"/>
/// if null, simply has unlimited max count.
/// </summary>
[DataField("maxCount")]
public int? MaxCount { get; }
/// <summary>
/// The size of an individual unit of this stack.
/// </summary>
[DataField("itemSize")]
public int? ItemSize;
}