X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Flevels%2Flevel_converter.py;h=a8b8d679c7a8a6c6e7ccb41d6e36cd2ebbffb2d6;hb=6c6770561fb358f59b4755ba362a65f60c7a1162;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=df128590e265cde7af1e2640009c3decaef65a1b;p=koperkapel.git diff --git a/koperkapel/levels/level_converter.py b/koperkapel/levels/level_converter.py index e69de29..a8b8d67 100644 --- a/koperkapel/levels/level_converter.py +++ b/koperkapel/levels/level_converter.py @@ -0,0 +1,104 @@ +import os +import json +import sys + +ATTRIBUTE_MAP = { + ' ': {'floor': {'base': 'floor', + 'behaviour': ['walk', 'fly'], + }, + }, + 'w': {'floor': {'base': 'cwall', + 'behaviour': [], + }, + }, + 'o': {'tunnels': {'base': 'underground', + 'behaviour': [], + } + }, + 't': {'tunnels': {'base': 'underground', + 'behaviour': [], + } + }, + '-': {'tunnels': {'base': 'tunnel', + 'behaviour': ['crawl', ], + }, + }, + 'f': {'floor': {'base': 'floor', + 'behaviour': ['walk', 'fly'], + }, + }, + 'd': {'floor': {'base': 'floor', + 'behaviour': ['walk', 'fly'], + }, + }, + 'g': {'floor': {'base': 'floor', + 'behaviour': ['walk', 'fly', 'crawl'], + }, + }, + 'k': {'floor': {'base': 'floor', + 'behaviour': ['walk', 'fly'], + }, + }, + 's': {'floor': {'base': 'floor', + 'behaviour': ['walk', 'fly'], + }, + }, +} + + +class level_generator: + + def __init__(self): + + pass + + def convert(self, passage_file, tunnel_file): + print('Make level') + with open(passage_file) as passages: + with open(tunnel_file) as tunnels: + p = [] + for a in passages: + r = [] + for aa in a: + r.append(aa) + p.append(r) + t = [] + for a in tunnels: + r = [] + for aa in a: + r.append(aa) + t.append(r) + level = {} + level['tileset'] = 'bunker' + level['tiles'] = [] + level['starting pos'] = [] + level['door_info'] = [] + level['friendly roaches'] = [] + level['enemy generators'] = [] + + for l, lu in zip(p, t): + row = [] + for t1, t2 in zip(l, lu): + if t1 != '\n' and t2 != '\n': + print(t1, t2) + tile = ATTRIBUTE_MAP[t1].copy() + tile.update(ATTRIBUTE_MAP[t2]) + row.append(tile) + if t1 == 's': + level['starting pos'] = [len(row) - 1, len(level['tiles']) - 1] + # if t2 == 'd' + level['tiles'].append(row) + # Crude hack so the level is written into the levels folder + name = os.path.join(os.path.dirname(__file__), '..', 'levels', 'map.json') + f = open(name, 'w') + json.dump(level, f, indent=3) + f.close() + + +if __name__ == '__main__': + l = level_generator() + if len(sys.argv) != 3: + print("Usage %s " % sys.argv[0]) + #l.convert('l2', 't2') + else: + l.convert(sys.argv[1], sys.argv[2])