Пример #1
0
Файл: map.py Проект: ylehir/NBT
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
Пример #2
0
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
Пример #3
0
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