forked from darrenks/cloneworld
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparse_levelset.py
More file actions
33 lines (26 loc) · 1.1 KB
/
parse_levelset.py
File metadata and controls
33 lines (26 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from level import Level
from player import Player
from ascii import *
import re
#given ascii representation of levels return a list of level objects
#for now only returns first level (because havent implemented custom tiles end block parsing
#todo error checking, like make sure chip and an exit exists...
def parse_levelset(input):
levels=[]
for lvlstr in re.findall('%%%[^%]*', input):
dungeon=re.split("\n", re.split("\nend", re.split("map\n", lvlstr)[1])[0])
level=Level()
for y in range(0, len(dungeon)):
for x in range(0, (len(dungeon[y])+1)//2):
c=dungeon[y][x*2]
if c in Data:
tileclass=Data[c]
level.top_layer[y][x]=tileclass(x, y)
if tileclass == MyPlayer:
level.x=x
level.y=y
else:
Debug.notify('character %s not recognized'%c)
levels.append(level)
break #TODO for now only want the first level
return levels