public static int ManhattanDistance(Vector3i a, Vector3i b)
 {
     var dx = Math.Abs(b.X - a.X);
     var dy = Math.Abs(b.Y - a.Y);
     var dz = Math.Abs(b.Z - a.Z);
     return dx + dy + dz;
 }
 public int DistanceSquared(Vector3i v)
 {
     return DistanceSquared(this, v);
 }
 public static int DistanceSquared(Vector3i a, Vector3i b)
 {
     var dx = b.X - a.X;
     var dy = b.Y - a.Y;
     var dz = b.Z - a.Z;
     return dx * dx + dy * dy + dz * dz;
 }