Changeset 139:d1f543ff0805 for nagslang
- Timestamp:
- 09/02/13 16:27:58 (9 years ago)
- Branch:
- default
- Phase:
- public
- Rebase:
- 66623739353436633133646631633335313636373162316565633566646261636631366163373939
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
nagslang/level.py
r122 r139 3 3 4 4 from nagslang.resources import resources 5 from nagslang.yamlish import load, dump 5 6 6 7 POLY_COLORS = { … … 28 29 29 30 def load(self): 30 31 def add_polygon(polygon, index, num_points):32 self.polygons[index] = polygon33 if len(polygon) != num_points:34 print 'Error - incorrect polygon size'35 print 'Expected: %d, got %d' % (num_points, len(polygon))36 37 inpoly = False38 polygon = []39 index = 040 num_points = 041 31 with resources.get_file('levels', self.name) as f: 42 for line in f: 43 if inpoly: 44 if not line.startswith('Point:'): 45 add_polygon(polygon, index, num_points) 46 polygon = [] 47 inpoly = False 48 index = 0 49 else: 50 point = line.split(':', 1)[1] 51 x, y = [int(i) for i in point.split()] 52 polygon.append((x, y)) 53 if line.startswith('X-Size:'): 54 self.x = int(line.split(':', 1)[1]) 55 elif line.startswith('Y-Size:'): 56 self.y = int(line.split(':', 1)[1]) 57 elif line.startswith('Base tile:'): 58 self.basetile = line.split(':', 1)[1].strip() 59 elif line.startswith('Polygon'): 60 rest = line.split(' ', 1)[1] 61 index, num_points = [int(x) for x in rest.split(':', 1)] 62 inpoly = True 63 if index: 64 add_polygon(polygon, index, num_points) 32 data = load(f) 33 self.x, self.y = data['size'] 34 self.base_tile = data['base_tile'] 35 for i, points in data['polygons'].iteritems(): 36 self.polygons[i] = [] 37 for point in points: 38 self.polygons[i].append(tuple(point)) 65 39 66 40 def all_closed(self): … … 85 59 return False 86 60 with resources.get_file('levels', self.name, mode='w') as f: 87 f.write('X-Size: %s\n' % self.x) 88 f.write('Y-Size: %s\n' % self.y) 89 f.write('Base tile: %s\n' % self.basetile) 90 for i, poly in self.polygons.items(): 91 if len(poly) == 0: 92 continue 93 f.write('Polygon %d : %d\n' % (i, len(poly))) 94 for point in poly: 95 f.write('Point: %d %d\n' % point) 61 dump({ 62 'size': [self.x, self.y], 63 'base_tile': self.basetile, 64 'polygons': self.polygons, 65 }, f) 96 66 return True 97 67
Note:
See TracChangeset
for help on using the changeset viewer.