code: public RayTraceResult trace()
  	{
  		if (!(state.getBlock() instanceof IBoundingBox))
  			return state.collisionRayTrace(world, pos, ray.origin.toVec3d(), dest.toVec3d());
  
  		IBoundingBox block = (IBoundingBox) state.getBlock();
  		AxisAlignedBB[] aabbs = block.getRayTraceBoundingBox(world, pos, world.getBlockState(pos));
  		Pair<EnumFacing, Point> closest = super.trace(AABBUtils.offset(pos, aabbs));
  		if (closest == null)
  			return null;
  
  		return new RayTraceResult(closest.getRight().toVec3d(), closest.getLeft(), pos);
  	}
docs: Does the raytracing.
  
  @return {@link RayTraceResult} with <code>typeOfHit</code> <b>BLOCK</b> if a ray hits a block in the way, or <b>MISS</b> if it
  reaches <code>dest</code> without any hit