Adds support for unlimited stacks (#5084)

Co-authored-by: ike709 <ike709@github.com>
This commit is contained in:
ike709
2021-10-31 08:27:11 -05:00
committed by GitHub
parent 0bbc4d9afe
commit 0865409521
3 changed files with 16 additions and 2 deletions

View File

@@ -62,6 +62,8 @@ namespace Content.Server.Stack
{
// Set the split stack's count.
SetCount(entity.Uid, amount, stackComp);
// Don't let people dupe unlimited stacks
stackComp.Unlimited = false;
}
return entity;

View File

@@ -15,6 +15,7 @@ namespace Content.Shared.Stacks
{
public sealed override string Name => "Stack";
[ViewVariables(VVAccess.ReadWrite)]
[DataField("stackType", required:true, customTypeSerializer:typeof(PrototypeIdSerializer<StackPrototype>))]
public string StackTypeId { get; private set; } = string.Empty;
@@ -34,6 +35,13 @@ namespace Content.Shared.Stacks
[DataField("max")]
public int MaxCount { get; set; } = 30;
/// <summary>
/// Set to true to not reduce the count when used.
/// </summary>
[DataField("unlimited")]
[ViewVariables(VVAccess.ReadOnly)]
public bool Unlimited { get; set; }
[ViewVariables]
public int AvailableSpace => MaxCount - Count;
}

View File

@@ -73,7 +73,11 @@ namespace Content.Shared.Stacks
}
// We do have enough things in the stack, so remove them and change.
if (!stack.Unlimited)
{
SetCount(uid, stack.Count - amount, stack);
}
return true;
}