changeset 51:e5f36843f7cd

Add on_enter and on_exit methods to habitats.
author Simon Cross <hodgestar@gmail.com>
date Sun, 11 Sep 2011 15:42:57 +0200
parents 1b725035b8ef
children d09f63429b80
files mamba/__main__.py mamba/engine.py
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/__main__.py	Sun Sep 11 15:29:52 2011 +0200
+++ b/mamba/__main__.py	Sun Sep 11 15:42:57 2011 +0200
@@ -35,3 +35,4 @@
     engine = Engine()
     engine.set_habitat(start)
     engine.run()
+    engine.set_habitat(None)  # clear habitat
--- a/mamba/engine.py	Sun Sep 11 15:29:52 2011 +0200
+++ b/mamba/engine.py	Sun Sep 11 15:42:57 2011 +0200
@@ -14,7 +14,11 @@
         self._habitat = None
 
     def set_habitat(self, habitat):
+        if self._habitat is not None:
+            self._habitat.on_exit()
         self._habitat = habitat
+        if self._habitat is not None:
+            self._habitat.on_enter()
 
     def run(self):
         """Game loop."""
@@ -37,6 +41,14 @@
         self.surface = pygame.Surface(SCREEN)
         self.container = Container()
 
+    def on_enter(self):
+        """Called when this becomes the current habitat."""
+        pass
+
+    def on_exit(self):
+        """Called when this stops being the current habitat."""
+        pass
+
     def dispatch(self, ev):
         self.container.event(ev)