当前位置: 首页>>代码示例>>Python>>正文


Python Wrapper.run方法代码示例

本文整理汇总了Python中wrapper.Wrapper.run方法的典型用法代码示例。如果您正苦于以下问题:Python Wrapper.run方法的具体用法?Python Wrapper.run怎么用?Python Wrapper.run使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在wrapper.Wrapper的用法示例。


在下文中一共展示了Wrapper.run方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from wrapper import Wrapper [as 别名]
# 或者: from wrapper.Wrapper import run [as 别名]
    def __init__(self, center=None, jar=None, output='{seed}.png', radius=1000, resolution=2, seed=None, verbosity=1):
        self.verbosity = verbosity

        # Resolve paths before we change directory
        output = os.path.abspath(output)
        if jar:
            jar = os.path.abspath(jar)

        #Make a temporary directory and switch to it
        self.log(1, 'creating temporary directory')
        with tempdir(prefix='cedar-tmp-') as tmp:
            os.chdir(tmp)

            #Copy in the server jar, or download it
            if jar:
                self.log(1, 'copying jar')
                source = open(jar, 'rb')
            else:
                self.log(1, 'downloading jar')
                source = self.download_server()

            dest = open('minecraft_server.jar', 'wb')
            dest.write(source.read())
            source.close()
            dest.close()

            #Write server.properties
            self.log(1, 'writing server.properties')
            with open('server.properties', 'w') as props:
                props.write('level-seed={seed}\nlisten-port=65349\n'.format(seed=seed if seed else ''))

            #Do a first-run of the server
            self.log(1, 'initialising world')
            wrapper = Wrapper(self.log)
            wrapper.run()

            #Grab spawn point and seed, if they haven't been specified
            world = World(self.log)
            if not center:
                center = world.spawn
            if not seed:
                seed = world.seed

            center = tuple((c//16)*16 for c in center)
            output = output.format(seed=seed)

            #Open output image
            img = open(output, 'wb')

            #Generate the world!
            path = list(Spiral.spiral(radius, center))
            for i, spawn in enumerate(path):
                self.log(1, "generating world ({0} of {1})".format(i+1, len(path)))
                world.set_spawn(spawn)
                wrapper.run()

            #Generate the carto!
            colours = BlockColours()
            size = 2 * radius // resolution
            writer = Writer(size, size)
            pixels = [0] * (size * size * 3)
            for b_x, b_z, b_data, b_meta, b_height, b_biome in world.carto(radius, center, resolution):
                try:
                    colour = colours.get_colour(b_data, b_meta)
                except KeyError:
                    self.log(1, "unknown block at {0}, {1}! id: {2} meta: {3}".format(b_x, b_z, b_data, b_meta))
                    continue
                b_x = (b_x + radius - center[0]) // resolution
                b_z = (b_z + radius - center[1]) // resolution
                for i, c in enumerate(colour):
                    pixels[i + 3 * (b_x + size*b_z)] = c

            writer.write_array(img, pixels)
            img.close()

            self.log(1, "saved as {0}".format(output))
开发者ID:barneygale,项目名称:cedar,代码行数:78,代码来源:cedar.py


注:本文中的wrapper.Wrapper.run方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。