# HG changeset patch # User Neil Muller # Date 1316101272 -7200 # Node ID 51bec5e6191e68afe9573bb88a6e19493a316ca8 # Parent b970f717479b4ca0eee0dedad6c9d0db92bc5f29 Rework selecting tilesets diff -r b970f717479b -r 51bec5e6191e mamba/habitats/editor.py --- 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: