Mercurial > mamba
changeset 275:51bec5e6191e
Rework selecting tilesets
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Thu, 15 Sep 2011 17:41:12 +0200 |
parents | b970f717479b |
children | 9c57025781e7 |
files | mamba/habitats/editor.py |
diffstat | 1 files changed, 23 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/habitats/editor.py Thu Sep 15 17:40:35 2011 +0200 +++ b/mamba/habitats/editor.py Thu Sep 15 17:41:12 2011 +0200 @@ -11,8 +11,8 @@ from mamba.widgets.entrybox import EntryBox from mamba.widgets.listbox import ListBox from mamba.widgets.toollist import ToolListWidget -from mamba.level import Level, TILE_MAP, THING_MAP -from mamba.data import check_level_exists, list_levels +from mamba.level import Level, Tileset, TILE_MAP, THING_MAP +from mamba.data import check_level_exists, list_levels, list_tilesets from mamba.constants import (SCREEN, EDIT_SCREEN, NAME, ESCAPE_KEYS, RESERVED_NAMES) @@ -77,8 +77,7 @@ tilesetname = TextButton((button_left, button_height), 'Tileset: %s' % self.level.tileset.name, color='white') - tilesetname.add_callback('clicked', self.do_edit, 'Edit Tileset', - self.level.tileset.name, self.check_tileset) + tilesetname.add_callback('clicked', self.list_tilesets) self.container.add(tilesetname) button_height += tilesetname.surface.get_height() + button_padding # TODO: Add Image widget for the current tool @@ -208,8 +207,26 @@ self.setup_toolbar() return True - def check_tileset(self, new_name): - return False + def list_tilesets(self, ev, widget): + tilesets = list_tilesets() + load_list = [] + for name in tilesets: + if name == 'common': + continue + load_button = TextButton((0, 0), name) + load_button.add_callback('clicked', self.change_tileset, name) + load_list.append(load_button) + load_dialog = ListBox((200, 200), 'Select Level', load_list) + self.container.add(load_dialog) + load_dialog.grab_focus() + + def change_tileset(self, ev, widget, new_name): + self.level.tileset = Tileset(new_name) + self.level.update_tiles_ascii() + self.level.restart() + self.clear_toolbar() + self.setup_toolbar() + return True def check_file(self, new_name): if new_name == self.level.level_name: