changeset 314:fba74abad7b7

Pass Level() objects to LevelHabitat and LevelEditorHabitat, in preparation for generating thumbnails from levels in levelmenu
author Stefano Rivera <stefano@rivera.za.net>
date Fri, 16 Sep 2011 19:07:51 +0200
parents c050e8d9e0e6
children e0a5e597ae66
files mamba/__main__.py mamba/habitats/editor.py mamba/habitats/level.py mamba/habitats/levelmenu.py mamba/habitats/mainmenu.py mamba/widgets/levelbutton.py
diffstat 6 files changed, 18 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/__main__.py	Fri Sep 16 18:56:42 2011 +0200
+++ b/mamba/__main__.py	Fri Sep 16 19:07:51 2011 +0200
@@ -12,6 +12,7 @@
 from mamba.habitats.mainmenu import MainMenu
 from mamba.habitats.level import LevelHabitat
 from mamba.habitats.editor import EditorHabitat
+from mamba.level import Level
 
 
 def main():
@@ -30,9 +31,9 @@
     load_levels()
 
     if options.edit:
-        start = EditorHabitat(options.level)
+        start = EditorHabitat(Level(options.level))
     elif options.level is not None:
-        start = LevelHabitat(options.level)
+        start = LevelHabitat(Level(options.level))
     else:
         start = MainMenu()
 
--- a/mamba/habitats/editor.py	Fri Sep 16 18:56:42 2011 +0200
+++ b/mamba/habitats/editor.py	Fri Sep 16 19:07:51 2011 +0200
@@ -21,9 +21,9 @@
 
 
 class EditorHabitat(Habitat):
-    def __init__(self, level_name):
+    def __init__(self, level):
         super(EditorHabitat, self).__init__(EDIT_SCREEN)
-        self.level = Level(level_name)
+        self.level = level
         self.edit_widget = EditLevelWidget(self.level)
         self.container.add(self.edit_widget)
         self.container.add_callback(KEYDOWN, self.keydown_event)
--- a/mamba/habitats/level.py	Fri Sep 16 18:56:42 2011 +0200
+++ b/mamba/habitats/level.py	Fri Sep 16 19:07:51 2011 +0200
@@ -6,13 +6,11 @@
 from mamba.engine import Habitat, NewHabitatEvent
 from mamba.world import World
 from mamba.widgets.game import GameWidget
-from mamba.level import Level
 
 
 class LevelHabitat(Habitat):
-    def __init__(self, level_name):
+    def __init__(self, level):
         super(LevelHabitat, self).__init__()
-        level = Level(level_name)
         world = World(level)
         game_widget = GameWidget(world)
         self.container.add(game_widget)
--- a/mamba/habitats/levelmenu.py	Fri Sep 16 18:56:42 2011 +0200
+++ b/mamba/habitats/levelmenu.py	Fri Sep 16 19:07:51 2011 +0200
@@ -2,9 +2,10 @@
 
 from pygame.locals import KEYDOWN
 
-from mamba.gamestate import levels, done_levels
 from mamba.constants import ESCAPE_KEYS
 from mamba.engine import Habitat, NewHabitatEvent
+from mamba.gamestate import levels, done_levels
+from mamba.level import Level
 from mamba.widgets.levelbutton import LevelButton
 
 
@@ -13,9 +14,10 @@
     def __init__(self):
         super(LevelMenu, self).__init__()
         self.level_buttons = {}
-        for level, name in enumerate(levels):
-            button = LevelButton((50 + 75 * level, 100), str(level + 1),
-                                 done=level in done_levels)
+        for i, name in enumerate(levels):
+            level = Level(name)
+            button = LevelButton((50 + 75 * i, 100), level,
+                                 done=name in done_levels)
             button.add_callback('clicked', self.level_selected, name)
             self.container.add(button)
             self.level_buttons[name] = button
@@ -28,7 +30,7 @@
 
     def level_selected(self, ev, widget, name):
         from mamba.habitats.level import LevelHabitat
-        NewHabitatEvent.post(LevelHabitat(name))
+        NewHabitatEvent.post(LevelHabitat(widget.level))
         return True
 
     def keydown_event(self, ev, widget):
--- a/mamba/habitats/mainmenu.py	Fri Sep 16 18:56:42 2011 +0200
+++ b/mamba/habitats/mainmenu.py	Fri Sep 16 19:07:51 2011 +0200
@@ -5,6 +5,7 @@
 
 from mamba.constants import ESCAPE_KEYS
 from mamba.engine import Habitat, NewHabitatEvent
+from mamba.level import Level
 from mamba.widgets.base import Container
 from mamba.widgets.text import TextButton
 
@@ -38,7 +39,7 @@
 
     def edit_event(self, ev, widget):
         from mamba.habitats.editor import EditorHabitat
-        NewHabitatEvent.post(EditorHabitat('dev'))
+        NewHabitatEvent.post(EditorHabitat(Level('dev')))
         return True
 
     def quit_keydown_event(self, ev, widget):
--- a/mamba/widgets/levelbutton.py	Fri Sep 16 18:56:42 2011 +0200
+++ b/mamba/widgets/levelbutton.py	Fri Sep 16 19:07:51 2011 +0200
@@ -9,9 +9,10 @@
 
 class LevelButton(Button):
 
-    def __init__(self, rect, text, done=False):
+    def __init__(self, rect, level, done=False):
         super(LevelButton, self).__init__(rect)
-        self.text = text
+        self.level = level
+        self.text = level.name
         self.done = done
         self.focussable = True
         self.border = 3
@@ -23,10 +24,8 @@
         self.surface = pygame.Surface(self.rect.size, SRCALPHA)
         self.surface.fill(0)
 
-        image = None
         if self.done:
             image = load_image('menus/tick.png')
-        if image:
             self.surface.blit(image, image.get_rect())
 
         self._text = TextWidget((0, 0), self.text, fontsize=24)