Added the_list.
[krufty_fps.git] / demo / experimental.py~
blobe7ac9d2fde474babaf788d2ba721fb131dbf1a5b
1 #!/usr/bin/python
2 # this has some dom related functions
4 def reduceDOM(dom):
6 results = {}
8 cur = []
10 def parseLevel(level):
11 parsed_stuff = [[], {}]
13 if level.hasAttributes():
14 for i in range(len(level.attributes)):
16 attrname = level.attributes.item(i).name.encode()
18 parsed_stuff[1][attrname] = level.attributes.item(1).value.encode()
20 if len(level.childNodes) == 1 and level.childNodes[0].nodeType == 3:
22 parsed_stuff[0] = level.childNodes[0].nodeValue.encode()
24 else:
26 parsed_stuff[0] = []
28 for node in level.childNodes:
29 if node.nodeType == 1:
31 name, contents = parseLevel(node)
32 parsed_stuff[0].append([name, contents])
34 return level.nodeName.encode(), parsed_stuff
36 results = parseLevel(dom.childNodes[0])
38 return results
40 def reduceConfig(config):
42 results = {}
44 for item in config[1][0]:
45 results[item[0]] = item[1][0]
47 return results
49 def reduceObjectDef(file):
51 results = {}
53 for item in file[1][0]:
55 results[item[0]] = item[1][0]
57 return results
59 def reduceMenuDef(file):
61 name = None
62 script = None
63 elements = {}
65 for item in file[1][0]:
67 if item[0] == 'name':
68 name = item[1][0]
70 if item[0] == 'script':
71 script = item[1][0]
73 if item[0] != 'script' and item[0] != 'name':
74 temp = item[1][1]
75 temp['contents'] = item[1][0]
76 temp['type'] = item[0]
77 elements[temp['id']] = temp
79 return name, script, elements
81 def reduceInstance(item):
83 type = item[0]
84 results = item[1][1]
86 results['contents'] = item[1][0]
88 return type, results
90 def convertEvent(self, e):
91 data = {}
93 if e.type == QUIT:
94 data['none'] = ''
96 if e.type == ACTIVEEVENT:
97 data['gain'] = e.gain
98 data['state'] = e.state
100 if e.type == KEYDOWN:
101 data['unicode'] = e.unicode
102 data['key'] = e.key
103 data['mod'] = e.mod
105 if e.type == KEYUP:
106 data['key'] = e.key
107 data['mod'] = e.mod
109 if e.type == MOUSEMOTION:
110 data['pos'] = e.pos
111 data['rel'] = e.rel
112 data['buttons'] = e.buttons
114 if e.type == MOUSEBUTTONUP:
115 data['pos'] = e.pos
116 data['button'] = e.button
118 if e.type == MOUSEBUTTONDOWN:
119 data['pos'] = e.pos
120 data['button'] = e.button
122 if e.type == JOYAXISMOTION:
123 data['joy'] = e.joy
124 data['axis'] = e.axis
125 data['value'] = e.value
127 if e.type == JOYBALLMOTION:
128 data['joy'] = e.joy
129 data['ball'] = e.ball
130 data['rel'] = e.rel
132 if e.type == JOYHATMOTION:
133 data['joy'] = e.joy
134 data['hat'] = e.hat
135 data['value'] = e.value
137 if e.type == JOYBUTTONUP:
138 data['joy'] = e.joy
139 data['button'] = e.button
141 if e.type == JOYBUTTONDOWN:
142 data['joy'] = e.joy
143 data['button'] = e.button
145 if e.type == VIDEORESIZE:
146 data['size'] = e.size
147 data['w'] = e.w
148 data['h'] = e.h
150 if e.type == VIDEOEXPOSE:
151 data['none'] = ''
153 if e.type == USEREVENT:
154 data['code'] = e.code
156 type = ''
158 if e.type == QUIT: type = "QUIT"
159 if e.type == ACTIVEEVENT: type = "ACTIVEEVENT"
160 if e.type == KEYDOWN: type = "KEYDOWN"
161 if e.type == KEYUP: type = "KEYUP"
162 if e.type == MOUSEMOTION : type = "MOUSEMOTION"
163 if e.type == MOUSEBUTTONUP: type = "MOUSEBUTTONUP"
164 if e.type == MOUSEBUTTONDOWN: type = "MOUSEBUTTONDOWN"
165 if e.type == JOYAXISMOTION: type = "JOYAXISMOTION"
166 if e.type == JOYBALLMOTION: type = "JOYBALLMOTION"
167 if e.type == JOYHATMOTION: type = "JOYHATMOTION"
168 if e.type == JOYBUTTONUP: type = "JOYBUTTONUP"
169 if e.type == JOYBUTTONDOWN: type = "JOYBUTTONDOWN"
170 if e.type == VIDEORESIZE: type = "VIDEORESIZE"
171 if e.type == VIDEOEXPOSE: type = "VIDEOEXPOSE"
172 if e.type == USEREVENT: type = "USEREVENT"
174 return [type, data]