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, 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
class World: 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 __str__(self): return self.level_name @property def chunks(self): # Currently incompatible with Python 3.x and above if sys.version_info.major > 2: raise Exception("This method currently only works with Python 2.x.") for basic_chunk in self.world.iter_chunks(): print(basic_chunk) x, z = basic_chunk.get_coords() yield Chunk(self.world, x, z) @property def bounding_box(self): return self.world.get_boundingbox() @property def players(self): return @property def seed(self): return @property def size(self): return 0