本文整理了Java中net.minecraft.item.ItemStack.areItemStackTagsEqual()
方法的一些代码示例,展示了ItemStack.areItemStackTagsEqual()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.areItemStackTagsEqual()
方法的具体详情如下:
包路径:net.minecraft.item.ItemStack
类名称:ItemStack
方法名:areItemStackTagsEqual
暂无
代码示例来源:origin: Vazkii/Botania
private boolean equalStacks(ItemStack stack1, ItemStack stack2) {
return stack1.isItemEqual(stack2) && ItemStack.areItemStackTagsEqual(stack1, stack2);
}
代码示例来源:origin: Vazkii/Botania
public List<ItemStack> getDisplayedRecipes() {
ArrayList<ItemStack> list = new ArrayList<>();
for(LexiconPage page : pages) {
ArrayList<ItemStack> itemsAddedThisPage = new ArrayList<>();
for(ItemStack s : page.getDisplayedRecipes()) {
addItem: {
for(ItemStack s1 : itemsAddedThisPage)
if(s1.getItem() == s.getItem())
break addItem;
for(ItemStack s1 : list)
if(s1.isItemEqual(s) && ItemStack.areItemStackTagsEqual(s1, s))
break addItem;
itemsAddedThisPage.add(s);
list.add(s);
}
}
}
list.addAll(extraDisplayedRecipes);
return list;
}
代码示例来源:origin: Vazkii/Botania
/**
* Gets if two stacks match.
*/
public static boolean stacksMatch(ItemStack stack1, ItemStack stack2, boolean checkNBT) {
return !stack1.isEmpty() && !stack2.isEmpty() && stack1.isItemEqual(stack2) && (!checkNBT || ItemStack.areItemStackTagsEqual(stack1, stack2));
}
代码示例来源:origin: Vazkii/Botania
private void addStack(ItemStack stack) {
if(stack.isEmpty())
return;
for(ItemStack oStack : materials)
if(oStack.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(oStack, stack)) {
oStack.grow(stack.getCount());
return;
}
materials.add(stack);
}
代码示例来源:origin: Vazkii/Botania
public boolean requestMatches(Object request, ItemStack filter) {
if(filter.isEmpty())
return false;
if(request instanceof ItemStack) {
ItemStack stack = (ItemStack) request;
return !stack.isEmpty() && stack.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(filter, stack);
}
String name = (String) request;
return CorporeaHelper.stacksMatch(filter, name);
}
代码示例来源:origin: Vazkii/Botania
public static void tryToSetLastRecipe(EntityPlayer player, IItemHandlerModifiable inv, List<ItemStack> lastRecipe) {
if(lastRecipe == null || lastRecipe.isEmpty() || player.world.isRemote)
return;
int index = 0;
boolean didAny = false;
for(ItemStack stack : lastRecipe) {
if(stack.isEmpty())
continue;
for(int i = 0; i < player.inventory.getSizeInventory(); i++) {
ItemStack pstack = player.inventory.getStackInSlot(i);
if(!pstack.isEmpty() && pstack.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(stack, pstack)) {
inv.setStackInSlot(index, pstack.splitStack(1));
didAny = true;
index++;
break;
}
}
}
if(didAny) {
player.world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_GENERIC_SPLASH, SoundCategory.BLOCKS, 0.1F, 10F);
EntityPlayerMP mp = (EntityPlayerMP) player;
mp.inventoryContainer.detectAndSendChanges();
}
}
代码示例来源:origin: RS485/LogisticsPipes
private boolean areEqualForMerge(ItemStack itemstack3, ItemStack itemstack4, Slot slot) {
if(slot instanceof ModuleSlot) {
return false;
}
return ItemStack.areItemStackTagsEqual(itemstack3, itemstack4);
}
代码示例来源:origin: Vazkii/Botania
public boolean canAcceptItem(ItemStack stack, List<ItemStack> filter, int filterType) {
if(stack.isEmpty())
return false;
if(filter.isEmpty())
return true;
switch(filterType) {
case 0 : { // Accept items in frames only
boolean anyFilter = false;
for(ItemStack filterEntry : filter) {
if(filterEntry == null)
continue;
anyFilter = true;
boolean itemEqual = stack.getItem() == filterEntry.getItem();
boolean damageEqual = stack.getItemDamage() == filterEntry.getItemDamage();
boolean nbtEqual = ItemStack.areItemStackTagsEqual(filterEntry, stack);
if(itemEqual && damageEqual && nbtEqual)
return true;
if(!stack.getHasSubtypes() && stack.isItemStackDamageable() && stack.getMaxStackSize() == 1 && itemEqual && nbtEqual)
return true;
if(stack.getItem() instanceof IManaItem && itemEqual)
return true;
}
return !anyFilter;
}
case 1 : return !canAcceptItem(stack, filter, 0); // Accept items not in frames only
default : return true; // Accept all items
}
}
代码示例来源:origin: Vazkii/Botania
private static ItemStack[] validateRecipe(EntityPlayer player, ItemStack stack, ItemStack[] recipe, int slot) {
InventoryCrafting fakeInv = new InventoryCrafting(new ContainerWorkbench(player.inventory, player.world, BlockPos.ORIGIN), 3, 3);
for(int i = 0; i < 9; i++)
fakeInv.setInventorySlotContents(i, recipe[i]);
ItemStack result = CraftingManager.findMatchingResult(fakeInv, player.world);
if(result.isEmpty()) {
assignRecipe(stack, recipe[9], slot);
return null;
}
if(!result.isItemEqual(recipe[9]) || result.getCount() != recipe[9].getCount() || !ItemStack.areItemStackTagsEqual(recipe[9], result)) {
assignRecipe(stack, recipe[9], slot);
return null;
}
return recipe;
}
代码示例来源:origin: Vazkii/Botania
private static boolean consumeFromInventory(ItemStack stack, IItemHandler inv, EntityPlayer player) {
for(int i = 0; i < inv.getSlots(); i++) {
ItemStack stackAt = inv.getStackInSlot(i);
if(!stackAt.isEmpty() && stack.isItemEqual(stackAt) && ItemStack.areItemStackTagsEqual(stack, stackAt)) {
boolean consume = true;
ItemStack container = stackAt.getItem().getContainerItem(stackAt);
if(!container.isEmpty()) {
if(container == stackAt)
consume = false;
else {
if(player == null)
ItemHandlerHelper.insertItem(inv, container, false);
else
ItemHandlerHelper.giveItemToPlayer(player, container);
}
}
if(consume)
inv.extractItem(i, 1, false);
return true;
}
}
return false;
}
代码示例来源:origin: SleepyTrousers/EnderIO
@Override
public boolean equals(Object obj) {
if (obj == null || obj.getClass() != ItemStackKey.class) {
return false;
}
ItemStack stack = ((ItemStackKey) obj).wrapped;
return ItemStack.areItemsEqual(wrapped, stack) && ItemStack.areItemStackTagsEqual(wrapped, stack);
}
代码示例来源:origin: Chisel-Team/Chisel
@Override
public boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
} else if (obj == null) {
return false;
} else if (getClass() != obj.getClass()) {
return false;
}
ItemStackWrapper other = (ItemStackWrapper) obj;
return ItemStack.areItemStacksEqual(wrapped, other.wrapped) && ItemStack.areItemStackTagsEqual(wrapped, other.wrapped);
}
代码示例来源:origin: AlgorithmX2/Chisels-and-Bits
@Override
public boolean consume()
{
ItemStack is = internal.extractItem( zz, 1, true );
if ( is != null && ItemStack.areItemStackTagsEqual( is, stack ) && ItemStack.areItemStackTagsEqual( is, stack ) )
{
internal.extractItem( zz, 1, false );
ModUtil.adjustStackSize( stack, -1 );
return true;
}
return false;
}
代码示例来源:origin: GregTechCE/GregTech
private static boolean areItemsEqual(boolean ignoreDamage, boolean ignoreNBTData, ItemStack filterStack, ItemStack itemStack) {
if(ignoreDamage) {
if(!filterStack.isItemEqualIgnoreDurability(itemStack)) {
return false;
}
} else if (!filterStack.isItemEqual(itemStack)) {
return false;
}
return ignoreNBTData || ItemStack.areItemStackTagsEqual(filterStack, itemStack);
}
}
代码示例来源:origin: SleepyTrousers/EnderIO
protected int getNumCanMerge(@Nonnull ItemStack itemStack, @Nonnull ItemStack result) {
if (!itemStack.isItemEqual(result) || !ItemStack.areItemStackTagsEqual(itemStack, result)) {
return 0;
}
return Math.min(itemStack.getMaxStackSize() - itemStack.getCount(), result.getCount());
}
代码示例来源:origin: SleepyTrousers/EnderIO
protected int getNumCanMerge(@Nonnull ItemStack itemStack, @Nonnull ItemStack result) {
if (!itemStack.isItemEqual(result) || !ItemStack.areItemStackTagsEqual(itemStack, result)) {
return 0;
}
return Math.min(itemStack.getMaxStackSize() - itemStack.getCount(), result.getCount());
}
代码示例来源:origin: SleepyTrousers/EnderIO
@Override
public boolean isInput(@Nonnull ItemStack test) {
if (Prep.isInvalid(test) || Prep.isInvalid(input)) {
return false;
}
if (useMeta) {
return ItemStack.areItemsEqual(input, test) && (!input.hasTagCompound() || ItemStack.areItemStackTagsEqual(input, test));
}
return test.getItem() == input.getItem() && (!input.hasTagCompound() || ItemStack.areItemStackTagsEqual(input, test));
}
代码示例来源:origin: Vazkii/Quark
private boolean shrinkItem(ItemStack stack, EntityPlayer player, int slot) {
ItemStack stackAt = player.inventory.getStackInSlot(slot);
if(stack.isItemEqual(stackAt) && ItemStack.areItemStackTagsEqual(stack, stackAt)) {
stackAt.shrink(1);
return true;
}
return false;
}
代码示例来源:origin: Vazkii/Botania
EntityItem item = (EntityItem) e;
ItemStack istack = item.getItem();
if(player.isSneaking() || istack.isItemEqual(pstack) && ItemStack.areItemStackTagsEqual(istack, pstack))
entIdBuilder.add(item.getEntityId());
代码示例来源:origin: JurassiCraftTeam/JurassiCraft2
protected void mergeStack(int slot, ItemStack stack) {
NonNullList<ItemStack> slots = this.getSlots();
ItemStack previous = slots.get(slot);
if (previous.isEmpty()) {
slots.set(slot, stack);
} else if (ItemStack.areItemsEqual(previous, stack) && ItemStack.areItemStackTagsEqual(previous, stack)) {
previous.setCount(previous.getCount() + stack.getCount());
}
}
内容来源于网络,如有侵权,请联系作者删除!