changeset 96:a9b564c38bef

Support showing exterior filled view in the editor
author Neil Muller <drnlmuller@gmail.com>
date Mon, 02 Sep 2013 11:20:34 +0200
parents ecba9550ad8d
children c177cdc41477
files tools/area_editor.py
diffstat 1 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/tools/area_editor.py	Mon Sep 02 11:20:04 2013 +0200
+++ b/tools/area_editor.py	Mon Sep 02 11:20:34 2013 +0200
@@ -76,9 +76,11 @@
         if index in self.polygons and len(self.polygons[index]) > 0:
             self.polygons[index].pop()
 
-    def draw(self, surface, topleft, mouse_pos, mouse_poly):
+    def draw(self, surface, topleft, mouse_pos, mouse_poly, filled):
         self._draw_background(True)
         # Draw polygons as needed for the editor
+        if filled:
+            self._draw_exterior(True)
         for index, polygon in self.polygons.items():
             color = POLY_COLORS[index]
             if len(polygon) > 1:
@@ -101,6 +103,7 @@
         self.pos = (0, 0)
         self.cur_poly = None
         self.mouse_pos = None
+        self.filled_mode = False
 
     def move_view(self, offset):
         new_pos = [self.pos[0] + offset[0], self.pos[1] + offset[1]]
@@ -122,7 +125,7 @@
         else:
             mouse_pos = None
         self.level.draw(self.surface, self.pos, mouse_pos,
-                self.cur_poly)
+                self.cur_poly, self.filled_mode)
 
     def _level_coordinates(self, pos):
         # Move positions to level values
@@ -151,22 +154,34 @@
                         self.move_view((0, 10))
                     if ev.key == pgl.K_1:
                         self.cur_poly = 1
+                        self.filled_mode = False
                     if ev.key == pgl.K_2:
                         self.cur_poly = 2
+                        self.filled_mode = False
                     if ev.key == pgl.K_3:
                         self.cur_poly = 3
+                        self.filled_mode = False
                     if ev.key == pgl.K_4:
                         self.cur_poly = 4
+                        self.filled_mode = False
                     if ev.key == pgl.K_5:
                         self.cur_poly = 5
+                        self.filled_mode = False
                     if ev.key == pgl.K_6:
                         self.cur_poly = 6
+                        self.filled_mode = False
                     if ev.key == pgl.K_0:
                         self.cur_poly = None
                     if ev.key == pgl.K_d and self.cur_poly:
                         self.level.delete_point(self.cur_poly)
                     if ev.key == pgl.K_s:
                         level.save()
+                    if ev.key == pgl.K_f:
+                        if level.all_closed():
+                            self.cur_poly = None
+                            self.filled_mode = True
+                        else:
+                            print 'Not all polygons closed, so not filling'
                 elif ev.type == pgl.MOUSEBUTTONDOWN and self.cur_poly:
                     # Add a point
                     self.level.add_point(self.cur_poly,