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