net.minecraft.item.ItemStack.isItemEqual()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(7.4k)|赞(0)|评价(0)|浏览(116)

本文整理了Java中net.minecraft.item.ItemStack.isItemEqual()方法的一些代码示例,展示了ItemStack.isItemEqual()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.isItemEqual()方法的具体详情如下:
包路径:net.minecraft.item.ItemStack
类名称:ItemStack
方法名:isItemEqual

ItemStack.isItemEqual介绍

暂无

代码示例

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

@Override
public boolean matches( ItemStack itemStack )
{
  return this.itemstack.isItemEqual( itemStack );
}

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

/**
 * 
 * @param slot
 * @param is itemstack
 * @return is if it can be used, else EMPTY
 */
private ItemStack canUseInSlot( int slot, ItemStack is )
{
  if( this.recipe[slot] != null )
  {
    for( ItemStack option : this.recipe[slot] )
    {
      if( is.isItemEqual( option ) )
      {
        return is;
      }
    }
  }
  return ItemStack.EMPTY;
}

代码示例来源:origin: Vazkii/Botania

private boolean equalStacks(ItemStack stack1, ItemStack stack2) {
  return stack1.isItemEqual(stack2) && ItemStack.areItemStackTagsEqual(stack1, stack2);
}

代码示例来源:origin: Vazkii/Botania

/**
   * If an item in this recipe is focused, returns the corresponding item instead of all the containers/results.
   */
  private List<ItemStack> getItemMatchingFocus(IFocus<?> focus, IFocus.Mode mode, List<ItemStack> focused, List<ItemStack> other) {
    if(focus != null && focus.getMode() == mode) {
      ItemStack focusStack = (ItemStack) focus.getValue();
      for(int i = 0; i < focused.size(); i++)
        if(focusStack.isItemEqual(focused.get(i)))
          return Collections.singletonList(other.get(i));
    }
    return other;
  }
}

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

@Override
public void apply()
{
  final IInscriberRegistry inscriber = AEApi.instance().registries().inscriber();
  inscriber.getRecipes()
      .stream()
      .filter( r -> r.getOutput().isItemEqual( this.stack ) )
      .collect( Collectors.toList() )
      .forEach( inscriber::removeRecipe );
}

代码示例来源: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: 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: Vazkii/Botania

public static boolean canFurnaceSmelt(TileEntityFurnace furnace){
  if(furnace.getStackInSlot(0).isEmpty())
    return false;
  else {
    ItemStack itemstack = FurnaceRecipes.instance().getSmeltingResult(furnace.getStackInSlot(0));
    if(itemstack.isEmpty())
      return false;
    if(furnace.getStackInSlot(2).isEmpty())
      return true;
    if(!furnace.getStackInSlot(2).isItemEqual(itemstack))
      return false;
    int result = furnace.getStackInSlot(2).getCount() + itemstack.getCount();
    return result <= 64 && result <= itemstack.getMaxStackSize();
  }
}

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

return a.isItemEqual( b );

代码示例来源:origin: SleepyTrousers/EnderIO

public boolean hasOuput(@Nonnull ItemStack result) {
 if (Prep.isInvalid(result)) {
  return false;
 }
 for (RecipeOutput output : outputs) {
  ItemStack os = output.getOutput();
  if (os.isItemEqual(result)) {
   return true;
  }
 }
 return false;
}

代码示例来源: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

private boolean isItemAlreadyInASlot(@Nonnull ItemStack itemstack) {
 for (int i = slotDefinition.getMinInputSlot(); i <= slotDefinition.getMaxInputSlot(); i++) {
  ItemStack currentStackType = getStackInSlot(i);
  if (Prep.isValid(currentStackType)) {
   return currentStackType.isItemEqual(itemstack);
  }
 }
 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: AppliedEnergistics/Applied-Energistics-2

else if( hand.isItemEqual( is ) )

相关文章

微信公众号

最新文章

更多

ItemStack类方法