changeset 109:817d4a62135c

Partially albowify the level editor
author Neil Muller <drnlmuller@gmail.com>
date Mon, 02 Sep 2013 14:09:39 +0200
parents dde91f8c4335
children 844073eaef69
files tools/area_editor.py
diffstat 1 files changed, 21 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/tools/area_editor.py	Mon Sep 02 13:59:11 2013 +0200
+++ b/tools/area_editor.py	Mon Sep 02 14:09:39 2013 +0200
@@ -19,12 +19,11 @@
 
 from albow.root import RootWidget
 from albow.widget import Widget
-from albow.controls import Button, Image
-from albow.resource import get_font
+from albow.controls import Button
 
 sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
 
-from nagslang.constants import SCREEN, FPS
+from nagslang.constants import SCREEN
 from nagslang.level import Level, POLY_COLORS
 
 
@@ -104,11 +103,12 @@
         surface_area = pygame.rect.Rect(topleft, SCREEN)
         surface.blit(self._surface, (0, 0), surface_area)
 
+
 class LevelWidget(Widget):
 
     def __init__(self, level):
         super(LevelWidget, self).__init__(pygame.rect.Rect(0, 0,
-            SCREEN[0], SCREEN[1]))
+                                          SCREEN[0], SCREEN[1]))
         self.level = level
         self.pos = (0, 0)
         self.filled_mode = False
@@ -133,7 +133,6 @@
             new_pos[1] = self.pos[1]
         self.pos = tuple(new_pos)
 
-
     def draw(self, surface):
         if (self.cur_poly is not None and self.cur_poly in self.level.polygons
                 and len(self.level.polygons[self.cur_poly])):
@@ -141,8 +140,8 @@
             mouse_pos = self._level_coordinates(self.mouse_pos)
         else:
             mouse_pos = None
-        level.draw(surface, self.pos, self.mouse_pos, self.cur_poly,
-                self.filled_mode)
+        level.draw(surface, self.pos, mouse_pos, self.cur_poly,
+                   self.filled_mode)
 
     def key_down(self, ev):
         if ev.key == pgl.K_LEFT:
@@ -184,6 +183,17 @@
             else:
                 print 'Not all polygons closed, so not filling'
 
+    def mouse_move(self, ev):
+        old_pos = self.mouse_pos
+        self.mouse_pos = ev.pos
+        if self.cur_poly and old_pos != self.mouse_pos:
+            self.invalidate()
+
+    def mouse_down(self, ev):
+        if self.cur_poly:
+            # Add a point
+            self.level.add_point(self.cur_poly,
+                                 self._level_coordinates(ev.pos))
 
 
 class EditorApp(RootWidget):
@@ -199,22 +209,15 @@
         quit_but.rect.move_ip(SCREEN[0], 25)
         self.add(quit_but)
 
-        #        elif ev.type == pgl.MOUSEBUTTONDOWN and self.cur_poly:
-        #            # Add a point
-        #            self.level.add_point(self.cur_poly,
-        #                                 self._level_coordinates(ev.pos))
-        #        elif ev.type == pgl.MOUSEMOTION:
-        #            self.mouse_pos = ev.pos
-        #    self.draw()
-        #    pygame.display.flip()
-        #    clock.tick(FPS)
-
     def key_down(self, ev):
         if ev.key == pgl.K_ESCAPE:
             self.quit()
         else:
             self.level_widget.key_down(ev)
 
+    def mouse_move(self, ev):
+        self.level_widget.mouse_move(ev)
+
 
 if __name__ == "__main__":
     if len(sys.argv) == 2:
@@ -228,7 +231,7 @@
     pygame.display.init()
     pygame.font.init()
     pygame.display.set_mode((SCREEN[0] + MENU_WIDTH, SCREEN[1]),
-            pgl.SWSURFACE)
+                            pgl.SWSURFACE)
     pygame.display.set_caption('Nagslang Area Editor')
     pygame.key.set_repeat(200, 100)
     app = EditorApp(level, pygame.display.get_surface())