@Override public NonNullList<ItemStack> pickFruit(ItemStack tool) { ITree tree = getTree(); if (tree == null || !hasFruit()) { return NonNullList.create(); } NonNullList<ItemStack> produceStacks = tree.produceStacks(world, getPos(), getRipeningTime()); ripeningTime = 0; sendNetworkUpdateRipening(); return produceStacks; }
@Override protected void getLeafDrop(NonNullList<ItemStack> drops, World world, @Nullable GameProfile playerProfile, BlockPos pos, float saplingModifier, int fortune) { ITree tree = getTree(world, pos); if (tree == null) { return; } // Add saplings List<ITree> saplings = tree.getSaplings(world, playerProfile, pos, saplingModifier); for (ITree sapling : saplings) { if (sapling != null) { drops.add(TreeManager.treeRoot.getMemberStack(sapling, EnumGermlingType.SAPLING)); } } // Add fruitsk ITreeGenome genome = tree.getGenome(); IFruitProvider fruitProvider = genome.getFruitProvider(); if (fruitProvider.isFruitLeaf(genome, world, pos)) { NonNullList<ItemStack> produceStacks = tree.produceStacks(world, pos, Integer.MAX_VALUE); drops.addAll(produceStacks); } }
@Override protected void getLeafDrop(NonNullList<ItemStack> drops, World world, @Nullable GameProfile playerProfile, BlockPos pos, float saplingModifier, int fortune) { TileLeaves tile = TileUtil.getTile(world, pos, TileLeaves.class); if (tile == null) { return; } ITree tree = tile.getTree(); if (tree == null) { return; } // Add saplings List<ITree> saplings = tree.getSaplings(world, playerProfile, pos, saplingModifier); for (ITree sapling : saplings) { if (sapling != null) { drops.add(TreeManager.treeRoot.getMemberStack(sapling, EnumGermlingType.SAPLING)); } } // Add fruits if (tile.hasFruit()) { drops.addAll(tree.produceStacks(world, pos, tile.getRipeningTime())); } }
@Override protected void getLeafDrop(NonNullList<ItemStack> drops, World world, @Nullable GameProfile playerProfile, BlockPos pos, float saplingModifier, int fortune) { ITree tree = getTree(world, pos); if (tree == null) { return; } // Add saplings List<ITree> saplings = tree.getSaplings(world, playerProfile, pos, saplingModifier); for (ITree sapling : saplings) { if (sapling != null) { drops.add(TreeManager.treeRoot.getMemberStack(sapling, EnumGermlingType.SAPLING)); } } // Add fruitsk ITreeGenome genome = tree.getGenome(); IFruitProvider fruitProvider = genome.getFruitProvider(); if (fruitProvider.isFruitLeaf(genome, world, pos)) { NonNullList<ItemStack> produceStacks = tree.produceStacks(world, pos, Integer.MAX_VALUE); drops.addAll(produceStacks); } }
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { ItemStack mainHand = player.getHeldItem(EnumHand.MAIN_HAND); ItemStack offHand = player.getHeldItem(EnumHand.OFF_HAND); if (mainHand.isEmpty() && offHand.isEmpty()) { ITree tree = getTree(world, pos); if (tree == null) { return false; } IFruitProvider fruitProvider = tree.getGenome().getFruitProvider(); NonNullList<ItemStack> products = tree.produceStacks(world, pos, fruitProvider.getRipeningPeriod()); world.setBlockState(pos, ModuleArboriculture.getBlocks().getDefaultLeaves(tree.getIdent()), 2); for (ItemStack fruit : products) { ItemHandlerHelper.giveItemToPlayer(player, fruit); } return true; } return false; }
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { ItemStack mainHand = player.getHeldItem(EnumHand.MAIN_HAND); ItemStack offHand = player.getHeldItem(EnumHand.OFF_HAND); if (mainHand.isEmpty() && offHand.isEmpty()) { PacketFXSignal packet = new PacketFXSignal(PacketFXSignal.VisualFXType.BLOCK_BREAK, PacketFXSignal.SoundFXType.BLOCK_BREAK, pos, state); NetworkUtil.sendNetworkPacket(packet, pos, world); ITree tree = getTree(world, pos); if (tree == null) { return false; } IFruitProvider fruitProvider = tree.getGenome().getFruitProvider(); NonNullList<ItemStack> products = tree.produceStacks(world, pos, fruitProvider.getRipeningPeriod()); world.setBlockState(pos, ModuleArboriculture.getBlocks().getDefaultLeaves(tree.getIdent()), 2); for (ItemStack fruit : products) { ItemHandlerHelper.giveItemToPlayer(player, fruit); } return true; } return false; }