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 = []