private void growLeafNode(World world, int x, int y, int z) {
   for (int xOffset = -3; xOffset <= 3; xOffset++)
     for (int zOffset = -3; zOffset <= 3; zOffset++) {
       if ((Math.abs(xOffset) != 3 || Math.abs(zOffset) != 3)
           && (Math.abs(xOffset) != 3 || Math.abs(zOffset) != 2)
           && (Math.abs(xOffset) != 2 || Math.abs(zOffset) != 3)
           && (xOffset != 0 || zOffset != 0))
         if (world.getBlockId(x + xOffset, y, z + zOffset) == 0)
           setBlockAndMetadata(
               world,
               x + xOffset,
               y,
               z + zOffset,
               TreeBlock.LEAVES.getID(),
               TreeBlock.LEAVES.getMetadata());
       if (Math.abs(xOffset) >= 3
           || Math.abs(zOffset) >= 3
           || Math.abs(xOffset) == 2 && Math.abs(zOffset) == 2) continue;
       if (world.getBlockId(x + xOffset, y - 1, z + zOffset) == 0)
         setBlockAndMetadata(
             world,
             x + xOffset,
             y - 1,
             z + zOffset,
             TreeBlock.LEAVES.getID(),
             TreeBlock.LEAVES.getMetadata());
       if (world.getBlockId(x + xOffset, y + 1, z + zOffset) != 0) continue;
       setBlockAndMetadata(
           world,
           x + xOffset,
           y + 1,
           z + zOffset,
           TreeBlock.LEAVES.getID(),
           TreeBlock.LEAVES.getMetadata());
     }
 }