public NonNullList<ItemStack> getRemainingItems(InventoryCrafting inv) { NonNullList<ItemStack> nonnulllist = NonNullList.<ItemStack>func_191197_a(inv.getSizeInventory(), ItemStack.field_190927_a); for (int i = 0; i < nonnulllist.size(); ++i) { ItemStack itemstack = inv.getStackInSlot(i); if (itemstack.getItem() instanceof ItemWrittenBook) { ItemStack itemstack1 = itemstack.copy(); itemstack1.func_190920_e(1); nonnulllist.set(i, itemstack1); break; } } return nonnulllist; }
public ItemStack[] getRemainingItems(InventoryCrafting inv) { ItemStack[] aitemstack = new ItemStack[inv.getSizeInventory()]; for (int i = 0; i < aitemstack.length; ++i) { ItemStack itemstack = inv.getStackInSlot(i); if (itemstack != null && itemstack.getItem() instanceof ItemWrittenBook) { aitemstack[i] = itemstack.copy(); aitemstack[i].stackSize = 1; break; } } return aitemstack; }
@Override public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) { if (this.getAge(state) >= getMaxAge() || world.isRemote) return; Iterable<BlockPos> getBox = BlockPos.getAllInBox(pos.add(-4, -2, -4), pos.add(4, 2, 4)); Iterator it = getBox.iterator(); while (it.hasNext()) { BlockPos fromIt = (BlockPos)it.next(); IBlockState loopstate = world.getBlockState(fromIt); if (loopstate.getBlock() == Blocks.BOOKSHELF) { TileEntity te = world.getTileEntity(fromIt.add(0, 1, 0)); if (te != null && te.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, EnumFacing.DOWN)) { IItemHandler cap = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, EnumFacing.DOWN); boolean found = false; for (int i = 0; i < cap.getSlots(); i++) { if (found) return; ItemStack book = cap.getStackInSlot(i); if (book != null && book.getItem() == Items.WRITTEN_BOOK) { NBTTagCompound tag = book.getTagCompound(); if (ItemWrittenBook.validBookTagContents(tag) && !NBTUtils.getBoolean(book, "UC_tagRead", false) && ItemWrittenBook.getGeneration(book) == 0) { NBTTagList taglist = tag.getTagList("pages", 8); for (int j = 0; j < taglist.tagCount(); ++j) { String str = taglist.getStringTagAt(j); ITextComponent text = ITextComponent.Serializer.fromJsonLenient(str); try { if (str.length() >= 100 && str.length() <= 512) found = true; } catch (Exception e) { System.out.println("whoopsy doopsy"); } if (found) { ITextComponent newStr = eatSomeLetters(text); taglist.set(j, new NBTTagString(newStr.getUnformattedText())); break; } } tag.setTag("pages", taglist); tag.setBoolean("UC_tagRead", true); if (found) { int addAge = taglist.tagCount(); if (getAge(state) + addAge >= ((BlockCrops)state.getBlock()).getMaxAge()) world.setBlockState(pos, ((BlockCrops)state.getBlock()).withAge(((BlockCrops)state.getBlock()).getMaxAge()), 2); else world.setBlockState(pos, ((BlockCrops)state.getBlock()).withAge(getAge(state) + addAge), 2); } return; } } } } } } }
/** * Returns an Item that is the result of this recipe */ public ItemStack getCraftingResult(InventoryCrafting inv) { int i = 0; ItemStack itemstack = ItemStack.field_190927_a; for (int j = 0; j < inv.getSizeInventory(); ++j) { ItemStack itemstack1 = inv.getStackInSlot(j); if (!itemstack1.func_190926_b()) { if (itemstack1.getItem() == Items.WRITTEN_BOOK) { if (!itemstack.func_190926_b()) { return ItemStack.field_190927_a; } itemstack = itemstack1; } else { if (itemstack1.getItem() != Items.WRITABLE_BOOK) { return ItemStack.field_190927_a; } ++i; } } } if (!itemstack.func_190926_b() && itemstack.hasTagCompound() && i >= 1 && ItemWrittenBook.getGeneration(itemstack) < 2) { ItemStack itemstack2 = new ItemStack(Items.WRITTEN_BOOK, i); itemstack2.setTagCompound(itemstack.getTagCompound().copy()); itemstack2.getTagCompound().setInteger("generation", ItemWrittenBook.getGeneration(itemstack) + 1); if (itemstack.hasDisplayName()) { itemstack2.setStackDisplayName(itemstack.getDisplayName()); } return itemstack2; } else { return ItemStack.field_190927_a; } }
/** * Returns an Item that is the result of this recipe */ @Nullable public ItemStack getCraftingResult(InventoryCrafting inv) { int i = 0; ItemStack itemstack = null; for (int j = 0; j < inv.getSizeInventory(); ++j) { ItemStack itemstack1 = inv.getStackInSlot(j); if (itemstack1 != null) { if (itemstack1.getItem() == Items.WRITTEN_BOOK) { if (itemstack != null) { return null; } itemstack = itemstack1; } else { if (itemstack1.getItem() != Items.WRITABLE_BOOK) { return null; } ++i; } } } if (itemstack != null && i >= 1 && ItemWrittenBook.getGeneration(itemstack) < 2) { ItemStack itemstack2 = new ItemStack(Items.WRITTEN_BOOK, i); itemstack2.setTagCompound(itemstack.getTagCompound().copy()); itemstack2.getTagCompound().setInteger("generation", ItemWrittenBook.getGeneration(itemstack) + 1); if (itemstack.hasDisplayName()) { itemstack2.setStackDisplayName(itemstack.getDisplayName()); } return itemstack2; } else { return null; } }