Mercurial > nagslang
diff nagslang/level.py @ 72:5db052531510
Move save() to Level
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 01 Sep 2013 21:41:49 +0200 |
parents | 2c1b85b6f457 |
children | 79748a884eb5 |
line wrap: on
line diff
--- a/nagslang/level.py Sun Sep 01 21:39:16 2013 +0200 +++ b/nagslang/level.py Sun Sep 01 21:41:49 2013 +0200 @@ -62,6 +62,33 @@ if index: add_polygon(polygon, index, num_points) + def save(self): + closed = True + for poly in self.polygons.values(): + if len(poly) == 0: + # We ignore empty polygons + continue + elif len(poly) == 1: + closed = False + print "\033[31mError: polygon too small\033[0m" + elif poly[-1] != poly[0]: + closed = False + print "\033[31mError: polygon not closed\033[0m" + if not closed: + print 'Not saving the level' + return + with resources.get_file(self.name, mode='w') as f: + f.write('X-Size: %s\n' % self.x) + f.write('Y-Size: %s\n' % self.y) + f.write('Base tile: %s\n' % self.basetile) + for i, poly in self.polygons.items(): + if len(poly) == 0: + continue + f.write('Polygon %d : %d\n' % (i, len(poly))) + for point in poly: + f.write('Point: %d %d\n' % point) + print 'level %s saved' % self.name + def get_size(self): return self.x, self.y