Merge branch 'master' into No_movement_mode
[naja.git] / naja / events.py
index ec1b33f154d3cec2491130cc7b623cab85f5dec7..1d7609f5937cc61d81b89de4a0c805e7398f72b0 100644 (file)
@@ -6,8 +6,13 @@ import pygame.event as pge
 import pygame.locals as pgl
 
 
-class NajaEvent(object):
+def finish_event(handled=True, skip_invalidate=False):
+    if not skip_invalidate:
+        InvalidateTheWorld.post()
+    return handled
+
 
+class NajaEvent(object):
     TYPE = "UNKNOWN"
 
     @classmethod
@@ -25,5 +30,19 @@ class SceneChangeEvent(NajaEvent):
     TYPE = "SCENE_CHANGE"
 
     @classmethod
-    def post(cls, scene):
-        super(SceneChangeEvent, cls).post(scene=scene)
+    def post(cls, scene_cls):
+        super(SceneChangeEvent, cls).post(scene_cls=scene_cls)
+
+
+class QuitGameEvent(NajaEvent):
+    TYPE = "QUIT_GAME"
+
+
+class InvalidateTheWorld(NajaEvent):
+    # This is used to signal to all the widgets that the world has changed
+    # and cached state may need to be recreated
+    TYPE = "INVALIDATE"
+
+
+class SelectEvent(NajaEvent):
+    TYPE = "SELECT"