Ban Packsack nesting
禁止背包嵌套
This commit is contained in:
parent
0f9e7d0283
commit
bb44d77805
|
@ -4,7 +4,6 @@ using Godot;
|
|||
|
||||
namespace ColdMint.scripts.item.itemStacks;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// <para>ItemStack for <see cref="Packsack"/> item. Can add items into pack by stack them to this stack.</para>
|
||||
/// <para>用于<see cref="Packsack"/>物品的堆栈。可以将物品堆叠到此堆栈中,从而将物品添加到背包中。</para>
|
||||
|
@ -19,13 +18,30 @@ public class PacksackStack(Packsack packsack) : IItemStack
|
|||
public string Name => packsack.Name;
|
||||
public string? Description => packsack.Description;
|
||||
|
||||
public bool CanAddItem(IItem item) => packsack.ItemContainer?.CanAddItem(item) ?? false;
|
||||
//todo: 只拒绝是背包的物品是权宜之计,应该为物品加入一个“是否可以放入背包”的属性来实现这个判断。
|
||||
public bool CanAddItem(IItem item)
|
||||
{
|
||||
if (item is Packsack) return false;
|
||||
return packsack.ItemContainer?.CanAddItem(item) ?? false;
|
||||
}
|
||||
|
||||
public bool AddItem(IItem item) => packsack.ItemContainer?.AddItem(item) ?? false;
|
||||
public bool AddItem(IItem item)
|
||||
{
|
||||
if (item is Packsack) return false;
|
||||
return packsack.ItemContainer?.AddItem(item) ?? false;
|
||||
}
|
||||
|
||||
public int CanTakeFrom(IItemStack itemStack) => packsack.ItemContainer?.CanAddItemStack(itemStack) ?? 0;
|
||||
public int CanTakeFrom(IItemStack itemStack)
|
||||
{
|
||||
if (itemStack.GetItem() is Packsack) return 0;
|
||||
return packsack.ItemContainer?.CanAddItemStack(itemStack) ?? 0;
|
||||
}
|
||||
|
||||
public bool TakeFrom(IItemStack itemStack) => packsack.ItemContainer?.AddItemStack(itemStack) ?? false;
|
||||
public bool TakeFrom(IItemStack itemStack)
|
||||
{
|
||||
if (itemStack.GetItem() is Packsack) return false;
|
||||
return packsack.ItemContainer?.AddItemStack(itemStack) ?? false;
|
||||
}
|
||||
|
||||
public IItem? GetItem()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user