from worldLoader import WorldSlice import interfaceUtils # for testing interfaceUtils.runCommand("execute at @p run setbuildarea ~ ~-1 ~ ~ ~ ~") # 2D build area buildArea = interfaceUtils.requestBuildArea() if buildArea != -1: x1 = buildArea["xFrom"] y1 = buildArea["yFrom"] z1 = buildArea["zFrom"] x2 = buildArea["xTo"] y2 = buildArea["yTo"] z2 = buildArea["zTo"] # print(buildArea) area = (x1, z1, x2 - x1, z2 - z1) ws = WorldSlice(area, []) block = ws.getBlockCompoundAt((x1, y1, z1)) print(block) print(block["Properties"]) print(block["Properties"]["half"])
for i in range(len(palette)): paletteReverseLookup[palette[i]] = i topmap = np.zeros((rect[2], rect[3]), dtype='int') topcolor = np.zeros(topmap.shape, dtype="int") unknownBlocks = set() for dx in range(rect[2]): for dz in range(rect[3]): for dy in range(5): x = rect[0] + dx z = rect[1] + dz y = int(heightmap1[(dx, dz)]) - dy blockCompound = slice.getBlockCompoundAt((x, y, z)) if blockCompound != None: blockID = blockCompound["Name"].value if (blockID in ["minecraft:air", "minecraft:cave_air"]): continue else: numID = paletteReverseLookup.get(blockID, 0) if (numID == 0): unknownBlocks.add(blockID) # print("%s > %i" % (blockID, numID)) topmap[(dx, dz)] = numID topcolor[(dx, dz)] = paletteColors[numID] break print("unknown blocks: %s" % str(unknownBlocks))