@Nullable @Override public final AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) { ITree tree = getTree(worldIn, pos); if (tree != null && TreeDefinition.Willow.getUID().equals(tree.getIdent())) { return null; } return super.getCollisionBoundingBox(blockState, worldIn, pos); }
@Override public void writeData(PacketBufferForestry data) { String speciesUID = ""; ITree tree = getTree(); if (tree != null) { speciesUID = tree.getIdent(); } data.writeString(speciesUID); }
@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; }