Source code for redeclipse.cli.vector_test

#!/usr/bin/env python
import argparse
import logging
from redeclipse.voxel import VoxelWorld
from redeclipse.cli import parse
from redeclipse import prefabs as p
from redeclipse.prefabs import magica as m, TEXMAN
from redeclipse.upm import UnusedPositionManager
from redeclipse.magicavoxel.writer import to_magicavoxel

from redeclipse.vector import CoarseVector
from redeclipse.vector.orientations import SOUTH, NORTH, WEST, EAST, ABOVE
logging.basicConfig(level=logging.INFO)
log = logging.getLogger(__name__)


# 2 ** 7 = 16 rooms
[docs]def main(mpz_in, redeclipse=None, magica=None, world_size=2**7): Room = m.castle_large mymap = parse(mpz_in.name) upm = UnusedPositionManager(world_size, mirror=4, noclip=True) v = VoxelWorld(size=world_size) kwargs = Room.randOpts(None) e = Room(pos=CoarseVector(8 + 3, 8, 0), orientation=EAST, **kwargs) upm.register_room(e) e.render(v, mymap) e.x('column', v, NORTH + EAST + NORTH + (ABOVE * 3), EAST, 8, tex=TEXMAN.get_colour(1, 0, 0)) e.x('column', v, NORTH + EAST + NORTH + (ABOVE * 3), NORTH, 6, tex=TEXMAN.get_colour(1, 1, 0)) e.x('column', v, NORTH + EAST + NORTH + (ABOVE * 3), SOUTH, 6, tex=TEXMAN.get_colour(1, 0, 1)) e.x('column', v, NORTH + EAST + NORTH + (ABOVE * 3), WEST, 4, tex=TEXMAN.get_colour(0, 1, 1)) for i in range(world_size // 8): q = p.Room(pos=CoarseVector(i, i, 1), orientation=EAST) q.render(v, mymap) # for (pos, typ, ori) in upm.unoccupied: # r = p.TestRoom(pos, orientation=EAST) # r.render(v, mymap) if magica: to_magicavoxel(v, magica, TEXMAN) if redeclipse: TEXMAN.emit_conf(redeclipse) TEXMAN.copy_data() mymap.world = v.to_octree() mymap.world[0].octsav = 0 mymap.write(redeclipse.name)
if __name__ == '__main__': parser = argparse.ArgumentParser(description='Add trees to map') parser.add_argument('mpz_in', type=argparse.FileType('r'), help='Input .mpz file') parser.add_argument('--redeclipse', type=argparse.FileType('w'), help='Output .mpz file') parser.add_argument('--magica', type=argparse.FileType('wb'), help='Output .vox file') args = parser.parse_args() main(**vars(args))