本文整理了Java中net.minecraft.item.ItemStack.isStackable()
方法的一些代码示例,展示了ItemStack.isStackable()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.isStackable()
方法的具体详情如下:
包路径:net.minecraft.item.ItemStack
类名称:ItemStack
方法名:isStackable
暂无
代码示例来源:origin: SleepyTrousers/EnderCore
@Override
public boolean doApply(@Nonnull ItemStack input) {
return input.isStackable();
}
};
代码示例来源:origin: SleepyTrousers/EnderCore
/**
* Checks if items, damage and NBT are equal and the items are stackable.
*
* @param s1
* @param s2
* @return True if the two stacks are mergeable, false otherwise.
*/
public static boolean areStackMergable(@Nonnull ItemStack s1, @Nonnull ItemStack s2) {
if (s1.isEmpty() || s2.isEmpty() || !s1.isStackable() || !s2.isStackable()) {
return false;
}
if (!s1.isItemEqual(s2)) {
return false;
}
return ItemStack.areItemStackTagsEqual(s1, s2);
}
代码示例来源:origin: ForestryMC/ForestryMC
private static boolean shiftToMachineInventory(List<Slot> inventorySlots, ItemStack stackToShift, int numSlots) {
boolean success = false;
if (stackToShift.isStackable()) {
success = shiftToMachineInventory(inventorySlots, stackToShift, numSlots, true);
}
if (!stackToShift.isEmpty()) {
success |= shiftToMachineInventory(inventorySlots, stackToShift, numSlots, false);
}
return success;
}
代码示例来源:origin: Vazkii/Quark
@SideOnly(Side.CLIENT)
public ItemStack getDisplayedStack(EntityPlayer player, ItemStack stack, int count) {
boolean verifySize = true;
if(stack.getItem() instanceof ItemBow && EnchantmentHelper.getEnchantmentLevel(Enchantments.INFINITY, stack) == 0) {
stack = new ItemStack(Items.ARROW);
verifySize = false;
}
if(stack.getItem() instanceof ItemTrowel) {
stack = ItemTrowel.getLastStack(stack);
verifySize = false;
}
if(!stack.isStackable() && slot.getSlotType() == Type.HAND)
return ItemStack.EMPTY;
if(verifySize && stack.isStackable() && count == stack.getCount())
return ItemStack.EMPTY;
return stack;
}
代码示例来源:origin: SleepyTrousers/EnderIO
public static boolean hasFreeSpace(@Nonnull IItemHandler handler) {
for (int i = 0; i < handler.getSlots(); i++) {
ItemStack stack = handler.getStackInSlot(i);
if (Prep.isInvalid(stack) || (stack.isStackable() && stack.getCount() < stack.getMaxStackSize() && stack.getCount() < handler.getSlotLimit(i))) {
return true;
}
}
return false;
}
代码示例来源:origin: Vazkii/Quark
@SideOnly(Side.CLIENT)
public int getStackCount(EntityPlayer player, ItemStack stack) {
if(!stack.isStackable())
return 1;
Predicate<ItemStack> pred = (stackAt) -> stack.isItemEqual(stackAt);
if(stack.getItem() == Items.ARROW)
pred = (stackAt) -> stackAt.getItem() instanceof ItemArrow;
int total = 0;
for(int i = 0; i < player.inventory.getSizeInventory(); i++) {
ItemStack stackAt = player.inventory.getStackInSlot(i);
if(pred.apply(stackAt))
total += stackAt.getCount();
}
return total;
}
代码示例来源:origin: ldtteam/minecolonies
private boolean canMergeStacks(final ItemStack stack1, final ItemStack stack2)
{
return !ItemStackUtils.isEmpty(stack1) && ItemStack.areItemStacksEqual(stack1, stack2) && stack1.isStackable()
&& ItemStackUtils.getSize(stack1) < stack1.getMaxStackSize() && ItemStackUtils.getSize(stack1) < this.getInventoryStackLimit();
}
代码示例来源:origin: Vazkii/Quark
Item item = stack.getItem();
if(player != null && player.world != null && !player.world.isRemote && !stack.isEmpty() && !(item instanceof ItemArmor) && (!unstackablesOnly || !stack.isStackable())) {
int currSlot = player.inventory.currentItem;
if(event.getHand() == EnumHand.OFF_HAND)
代码示例来源:origin: OpenMods/OpenModsLib
List<Slot> slots = getSlots();
if (stackToMerge.isStackable()) {
int slotId = reverse? stop - 1 : start;
while (!stackToMerge.isEmpty() && ((!reverse && slotId < stop) || (reverse && slotId >= start))) {
代码示例来源:origin: SleepyTrousers/EnderIO
if (!stack.isStackable()) {
return ItemHandlerHelper.insertItem(inventory, stack, simulate);
代码示例来源:origin: ForestryMC/ForestryMC
private static boolean shiftItemStackToRangeMerge(List<Slot> inventorySlots, ItemStack stackToShift, int start, int count) {
if (!stackToShift.isStackable() || stackToShift.isEmpty()) {
return false;
}
boolean changed = false;
for (int slotIndex = start; !stackToShift.isEmpty() && slotIndex < start + count; slotIndex++) {
Slot slot = inventorySlots.get(slotIndex);
ItemStack stackInSlot = slot.getStack();
if (!stackInSlot.isEmpty() && ItemStackUtil.isIdenticalItem(stackInSlot, stackToShift)) {
int resultingStackSize = stackInSlot.getCount() + stackToShift.getCount();
int max = Math.min(stackToShift.getMaxStackSize(), slot.getSlotStackLimit());
if (resultingStackSize <= max) {
stackToShift.setCount(0);
stackInSlot.setCount(resultingStackSize);
slot.onSlotChanged();
changed = true;
} else if (stackInSlot.getCount() < max) {
stackToShift.shrink(max - stackInSlot.getCount());
stackInSlot.setCount(max);
slot.onSlotChanged();
changed = true;
}
}
}
return changed;
}
代码示例来源:origin: Vazkii/Quark
@SubscribeEvent
public void itemPickedUp(EntityItemPickupEvent event) {
ItemStack stack = event.getItem().getItem();
ItemStack copy = stack.copy();
ItemNBTHelper.setBoolean(copy, TAG_FAVORITE_ITEM, true);
if(stack.isStackable()) {
for(ItemStack other : event.getEntityPlayer().inventory.mainInventory) {
if(ItemStack.areItemsEqual(copy, other) && ItemStack.areItemStackTagsEqual(copy, other)) {
if(!ItemStack.areItemStackTagsEqual(stack, copy)) {
event.getItem().setItem(copy);
event.setCanceled(true);
}
return;
}
}
}
}
代码示例来源:origin: mezz/JustEnoughItems
inventoryStack.isStackable() &&
inventoryStack.isItemEqual(stack) &&
ItemStack.areItemStackTagsEqual(inventoryStack, stack)) {
代码示例来源:origin: MatterOverdrive/MatterOverdrive-Legacy-Edition
ItemStack var10;
int var11;
if (stack.isStackable()) {
for (; stack.getCount() > 0 && (!var4 && var7 < var3 || var4 && var7 >= var2); var7 += var8) {
var9 = slots.get(var7);
代码示例来源:origin: CoFH/ThermalFoundation
ItemStack stackInSlot;
if (stack.isStackable()) {
while (stack.getCount() > 0 && (!ascending && k < slotMax || ascending && k >= slotMin)) {
slot = this.inventorySlots.get(k);
代码示例来源:origin: MatterOverdrive/MatterOverdrive-Legacy-Edition
boolean putInOutput(ItemStack item) {
if (getStackInSlot(OUTPUT_SLOT_ID).isEmpty()) {
setInventorySlotContents(OUTPUT_SLOT_ID, item);
return true;
} else {
if (getStackInSlot(OUTPUT_SLOT_ID).isStackable() && getStackInSlot(OUTPUT_SLOT_ID).getItemDamage() == item.getItemDamage() && getStackInSlot(OUTPUT_SLOT_ID).getItem() == item.getItem()) {
int newStackSize = getStackInSlot(OUTPUT_SLOT_ID).getCount() + 1;
if (newStackSize <= getStackInSlot(OUTPUT_SLOT_ID).getMaxStackSize()) {
getStackInSlot(OUTPUT_SLOT_ID).setCount(newStackSize);
return true;
}
}
}
return false;
}
代码示例来源:origin: P3pp3rF1y/AncientWarfare2
public static ItemStack mergeItemStack(IItemHandler handler, ItemStack stack) {
ItemStack ret = stack;
if (stack.isStackable()) {
for (int i = 0; i < handler.getSlots(); i++) {
if (stack.isEmpty()) {
代码示例来源:origin: ForestryMC/ForestryMC
if (!inventoryStack.isStackable()) {
continue;
代码示例来源:origin: SleepyTrousers/EnderIO
if (outputStack.isStackable() && ItemUtil.areStackMergable(outputStack, fill.result.itemStack)
&& (fill.result.itemStack.getCount() + outputStack.getCount()) <= outputStack.getMaxStackSize()) {
fill.result.itemStack.grow(outputStack.getCount());
代码示例来源:origin: SleepyTrousers/EnderIO
if (outputStack.isStackable() && ItemUtil.areStackMergable(outputStack, fill.result.itemStack)
&& (fill.result.itemStack.getCount() + outputStack.getCount()) <= outputStack.getMaxStackSize()) {
fill.result.itemStack.grow(outputStack.getCount());
内容来源于网络,如有侵权,请联系作者删除!