Mercurial > mamba
changeset 174:893fb9f8f468
Hook up basic saving
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 14 Sep 2011 01:26:44 +0200 |
parents | 71911af9d42d |
children | b498f76a455f |
files | mamba/habitats/editor.py mamba/level.py |
diffstat | 2 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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()
--- 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 = []