def main(world_folder, show=True): world = WorldFolder(world_folder) bb = world.get_boundingbox() world_map = Image.new('RGB', (16 * bb.lenx(), 16 * bb.lenz())) t = world.chunk_count() try: i = 0.0 for chunk in world.iter_chunks(): if i % 50 == 0: sys.stdout.write("Rendering image") elif i % 2 == 0: sys.stdout.write(".") sys.stdout.flush() elif i % 50 == 49: sys.stdout.write("%5.1f%%\n" % (100 * i / t)) i += 1 chunkmap = get_map(chunk) x, z = chunk.get_coords() world_map.paste(chunkmap, (16 * (x - bb.minx), 16 * (z - bb.minz))) print(" done\n") filename = os.path.basename(world_folder) + ".png" world_map.save(filename, "PNG") print("Saved map as %s" % filename) except KeyboardInterrupt: print(" aborted\n") filename = os.path.basename(world_folder) + ".partial.png" world_map.save(filename, "PNG") print("Saved map as %s" % filename) return 75 # EX_TEMPFAIL if show: world_map.show() return 0 # NOERR
def main(world_folder): world = WorldFolder(world_folder) try: for chunk in world.iter_nbt(): print_results(entities_per_chunk(chunk["Level"])) except KeyboardInterrupt: return 75 # EX_TEMPFAIL return 0 # NOERR
def __init__(self, level_name): self.level_name = level_name # Temporary fix for issue #6 until I have a better solution if not os.path.exists(level_name): return if not os.path.exists("%s/region" % level_name): return self.world = WorldFolder(level_name)
def main(world_folder, start=None, stop=None): world = WorldFolder(world_folder) try: for region in world.iter_regions(): process_region_file(region, start, stop) except KeyboardInterrupt: print('Keyboard interrupt!') print_results(block_counts) return 75 # EX_TEMPFAIL print_results() return 0 # EX_OK
def main(world_folder): world = WorldFolder(world_folder) try: region = world.get_region(0, 0) process_region_file(region) print_results() except KeyboardInterrupt: print('Keyboard interrupt!') print_results() return 75 # EX_TEMPFAIL return 0 # EX_OK
def main(world_folder, options): world = WorldFolder(world_folder) if not isinstance(world, nbt.world.AnvilWorldFolder): print(world_folder + " is not an Anvil world") return 0 level = NBTFile(os.path.join(world_folder, "level.dat")) version = Util.get_version(level) print("\nLoading level at " + world_folder) if version != "1.8" or options.force: if options.force: print("[Forcing level conversion attempt]") print("Level saved as Minecraft version " + version) try: total_nbt_edits = 0 total_block_edits = 0 for region in world.iter_regions(): for chunk in region.iter_chunks(): chunk, nbt_edits = convert_chunk(chunk) chunk, block_edits = convert_block(chunk) total_nbt_edits += nbt_edits total_block_edits += block_edits if options.save and nbt_edits > 0 or block_edits > 0: save_chunk(region, chunk) if total_nbt_edits > 0 or total_block_edits > 0: print("%d modifications made to the level nbt" % (total_nbt_edits)) print("%d modifications made to block section byte arrays" % (total_block_edits)) if options.save: save_level(level, world_folder) else: print("No modifications saved to level (using -n flag)") else: print("No level data was changed (nothing to modify)") except KeyboardInterrupt: return 75 else: print("Level is already saved for Minecraft 1.8 (or older)") if options.disable_keep_inv and options.save: disable_keep_inv(level, world_folder) return 0
find[int(ele[0])].sort() except IndexError: print("Aborting, ID too large in line " + str(i) + " : " + line) sys.exit() except ValueError: print("Aborting, bad value in line " + str(i) + " : " + line) sys.exit() line = inputfile.readline().strip("\n\r") i += 1 inputfile.close() #print(find) #return counter = 0 world = WorldFolder(world_folder) print("Counting chunks") numchunks = 0 for chunk in world.iter_nbt(): numchunks += 1 sys.stdout.write('%d chunks\r' % (numchunks)) sys.stdout.flush() #numchunks = 689 print("") chunknum = 0 try: for chunk in world.iter_nbt(): chunknum += 1 sys.stdout.write('%d / %d chunks searched\r' % (chunknum, numchunks))