X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fevents.py;h=158672611d3b57e9735a716dc1b6f8f11fb5a8e3;hb=c8c4a15980bf4b49dd307e83d5e2b10a1fe7b28c;hp=4d3fb07f80a94bc5502edfa048b3e0e017c80393;hpb=77c817eaeef44416ff09cd53024db9a80f032ba4;p=naja.git diff --git a/naja/events.py b/naja/events.py index 4d3fb07..1586726 100644 --- a/naja/events.py +++ b/naja/events.py @@ -6,8 +6,15 @@ import pygame.event as pge import pygame.locals as pgl -class NajaEvent(object): +def finish_event(handled=True, events=(), skip_invalidate=False): + for event in events: + event.post() + if not skip_invalidate: + InvalidateTheWorld.post() + return handled + +class NajaEvent(object): TYPE = "UNKNOWN" @classmethod @@ -32,6 +39,17 @@ class SceneChangeEvent(NajaEvent): class QuitGameEvent(NajaEvent): TYPE = "QUIT_GAME" - @classmethod - def post(cls): - super(QuitGameEvent, cls).post() + +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" + + +class PlayerMoved(NajaEvent): + # This is used to signal to widgets that care that the player has moved. + TYPE = "PLAYER_MOVED"