@Override public boolean matches( ItemStack itemStack ) { return this.itemstack.isItemEqual( itemStack ); }
/** * * @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; }
private boolean equalStacks(ItemStack stack1, ItemStack stack2) { return stack1.isItemEqual(stack2) && ItemStack.areItemStackTagsEqual(stack1, stack2); }
/** * 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; } }
@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 ); }
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; }
/** * 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)); }
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); }
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); }
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(); } }
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; }
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; }
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(); } }
return a.isItemEqual( b );
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; }
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()); }
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()); }
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; }
EntityItem item = (EntityItem) e; ItemStack istack = item.getItem(); if(player.isSneaking() || istack.isItemEqual(pstack) && ItemStack.areItemStackTagsEqual(istack, pstack)) entIdBuilder.add(item.getEntityId());
else if( hand.isItemEqual( is ) )