public ByteXYZ GetBlockCoords(PGStarMatch m) { int starclass = m.StarClass; int[] v0 = GetBaseBlockCoords(starclass); int[] v = m.BlockCoords; int[] bc = new int[] { v[0] - v0[0], v[1] - v0[1], v[2] - v0[2] }; if (bc[0] < 0 || bc[0] >= 128 || bc[1] < 0 || bc[1] >= 128 || bc[2] < 0 || bc[2] >= 128) { return(ByteXYZ.Invalid); } else { ByteXYZ blockcoords = new ByteXYZ { X = (sbyte)bc[0], Y = (sbyte)bc[1], Z = (sbyte)bc[2] }; string suffix = PGStarMatch.GetPgSuffix(blockcoords, m.StarClass, m.StarSeq); return(blockcoords); } }