# HG changeset patch # User Neil Muller # Date 1315956404 -7200 # Node ID 893fb9f8f46821e4250fa269ec329294c4c52ee4 # Parent 71911af9d42dfc08b41e46668ba8dde60b795a89 Hook up basic saving diff -r 71911af9d42d -r 893fb9f8f468 mamba/habitats/editor.py --- a/mamba/habitats/editor.py Wed Sep 14 01:13:23 2011 +0200 +++ b/mamba/habitats/editor.py Wed Sep 14 01:26:44 2011 +0200 @@ -5,7 +5,7 @@ from mamba.engine import Habitat, NewHabitatEvent from mamba.widgets.level import EditLevelWidget -from mamba.widgets.text import TextWidget +from mamba.widgets.text import TextWidget, TextButton from mamba.widgets.imagebutton import ImageButtonWidget from mamba.level import Level, TILE_MAP from mamba.constants import SCREEN, EDIT_SCREEN, NAME, ESCAPE_KEYS @@ -93,8 +93,15 @@ self.container.add(tile_button) button_height += \ tile_button.surface.get_height() + button_padding + button_height += 10 + save_button = TextButton((button_left, button_height), "Save Level") + save_button.add_callback('clicked', self.save) + self.container.add(save_button) def change_tool(self, ev, widget, new_tool, text): self.edit_widget.set_tool(new_tool) self.current_tool.text = 'Tool: %s' % text self.current_tool.prepare() + + def save(self, ev, widget): + self.level.save_level() diff -r 71911af9d42d -r 893fb9f8f468 mamba/level.py --- a/mamba/level.py Wed Sep 14 01:13:23 2011 +0200 +++ b/mamba/level.py Wed Sep 14 01:26:44 2011 +0200 @@ -93,6 +93,19 @@ self.setup_tiles(tiles_ascii) self.make_background() + def save_level(self): + """Save the current state of the level""" + save_file = load_file('levels/%s.txt' % (self.level_name,), 'wb') + save_file.write('%s\n' % self.name) + save_file.write('%s\n' % self.tileset.name) + for tile_row in self.tiles: + for tile in tile_row: + if tile: + save_file.write(tile.tile_char) + else: + save_file.write('.') + save_file.write('\n') + def setup_tiles(self, tiles_ascii): self.sprites = RenderUpdates() self.tiles = []