本文整理汇总了C#中ItemStack.AsItem方法的典型用法代码示例。如果您正苦于以下问题:C# ItemStack.AsItem方法的具体用法?C# ItemStack.AsItem怎么用?C# ItemStack.AsItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ItemStack
的用法示例。
在下文中一共展示了ItemStack.AsItem方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MoveOrMergeItem
protected internal virtual int MoveOrMergeItem(int index, ItemStack item, WindowArea from)
{
int emptyIndex = -1;
for (int i = 0; i < Length; i++)
{
if (this[i].Empty && emptyIndex == -1)
emptyIndex = i;
else if (this[i].Id == item.Id &&
this[i].Metadata == item.Metadata &&
this[i].Count < item.AsItem().MaximumStack)
{
// Merging takes precedence over empty slots
emptyIndex = -1;
if (from != null)
from[index] = ItemStack.EmptyStack;
if (this[i].Count + item.Count > item.AsItem().MaximumStack)
{
item = new ItemStack(item.Id, (sbyte)(item.Count - (item.AsItem().MaximumStack - this[i].Count)),
item.Metadata, item.Nbt);
this[i] = new ItemStack(item.Id, (sbyte)item.AsItem().MaximumStack, item.Metadata, item.Nbt);
continue;
}
this[i] = new ItemStack(item.Id, (sbyte)(this[i].Count + item.Count), item.Metadata);
return i;
}
}
if (emptyIndex != -1)
{
if (from != null)
from[index] = ItemStack.EmptyStack;
this[emptyIndex] = item;
}
return emptyIndex;
}
示例2: GetLinkedArea
protected override WindowArea GetLinkedArea(int index, ItemStack slot)
{
if (!slot.Empty && slot.AsItem() is IArmorItem && (index == 2 || index == 3))
return Armor;
if (index == 0 || index == 1 || index == 3)
return MainInventory;
return Hotbar;
}