# HG changeset patch # User Simon Cross # Date 1315748577 -7200 # Node ID e5f36843f7cd6d00ab9624d2d1c9c87e2aaedc65 # Parent 1b725035b8ef14d573a21c0b9d1e0a4c7a7080fe Add on_enter and on_exit methods to habitats. diff -r 1b725035b8ef -r e5f36843f7cd mamba/__main__.py --- 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 diff -r 1b725035b8ef -r e5f36843f7cd mamba/engine.py --- 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)