# HG changeset patch # User Stefano Rivera # Date 1316192871 -7200 # Node ID fba74abad7b7bbc7c3719ce4f02b216b2587d76a # Parent c050e8d9e0e627e990119e67a84df062223118ec Pass Level() objects to LevelHabitat and LevelEditorHabitat, in preparation for generating thumbnails from levels in levelmenu diff -r c050e8d9e0e6 -r fba74abad7b7 mamba/__main__.py --- 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() diff -r c050e8d9e0e6 -r fba74abad7b7 mamba/habitats/editor.py --- 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) diff -r c050e8d9e0e6 -r fba74abad7b7 mamba/habitats/level.py --- 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) diff -r c050e8d9e0e6 -r fba74abad7b7 mamba/habitats/levelmenu.py --- 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): diff -r c050e8d9e0e6 -r fba74abad7b7 mamba/habitats/mainmenu.py --- 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): diff -r c050e8d9e0e6 -r fba74abad7b7 mamba/widgets/levelbutton.py --- 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)