public MovingObjectPosition CalculateIntercept(Vec3D par1Vec3D, Vec3D par2Vec3D) { Vec3D vec3d = par1Vec3D.GetIntermediateWithXValue(par2Vec3D, MinX); Vec3D vec3d1 = par1Vec3D.GetIntermediateWithXValue(par2Vec3D, MaxX); Vec3D vec3d2 = par1Vec3D.GetIntermediateWithYValue(par2Vec3D, MinY); Vec3D vec3d3 = par1Vec3D.GetIntermediateWithYValue(par2Vec3D, MaxY); Vec3D vec3d4 = par1Vec3D.GetIntermediateWithZValue(par2Vec3D, MinZ); Vec3D vec3d5 = par1Vec3D.GetIntermediateWithZValue(par2Vec3D, MaxZ); if (!IsVecInYZ(vec3d)) { vec3d = null; } if (!IsVecInYZ(vec3d1)) { vec3d1 = null; } if (!IsVecInXZ(vec3d2)) { vec3d2 = null; } if (!IsVecInXZ(vec3d3)) { vec3d3 = null; } if (!IsVecInXY(vec3d4)) { vec3d4 = null; } if (!IsVecInXY(vec3d5)) { vec3d5 = null; } Vec3D vec3d6 = null; if (vec3d != null && (vec3d6 == null || par1Vec3D.SquareDistanceTo(vec3d) < par1Vec3D.SquareDistanceTo(vec3d6))) { vec3d6 = vec3d; } if (vec3d1 != null && (vec3d6 == null || par1Vec3D.SquareDistanceTo(vec3d1) < par1Vec3D.SquareDistanceTo(vec3d6))) { vec3d6 = vec3d1; } if (vec3d2 != null && (vec3d6 == null || par1Vec3D.SquareDistanceTo(vec3d2) < par1Vec3D.SquareDistanceTo(vec3d6))) { vec3d6 = vec3d2; } if (vec3d3 != null && (vec3d6 == null || par1Vec3D.SquareDistanceTo(vec3d3) < par1Vec3D.SquareDistanceTo(vec3d6))) { vec3d6 = vec3d3; } if (vec3d4 != null && (vec3d6 == null || par1Vec3D.SquareDistanceTo(vec3d4) < par1Vec3D.SquareDistanceTo(vec3d6))) { vec3d6 = vec3d4; } if (vec3d5 != null && (vec3d6 == null || par1Vec3D.SquareDistanceTo(vec3d5) < par1Vec3D.SquareDistanceTo(vec3d6))) { vec3d6 = vec3d5; } if (vec3d6 == null) { return(null); } sbyte byte0 = -1; if (vec3d6 == vec3d) { byte0 = 4; } if (vec3d6 == vec3d1) { byte0 = 5; } if (vec3d6 == vec3d2) { byte0 = 0; } if (vec3d6 == vec3d3) { byte0 = 1; } if (vec3d6 == vec3d4) { byte0 = 2; } if (vec3d6 == vec3d5) { byte0 = 3; } return(new MovingObjectPosition(0, 0, 0, byte0, vec3d6)); }