changeset 489:e522db37e5c5

Refactor level saving to allow saving to a passed in file (e.g. StringIO object).
author Simon Cross <hodgestar@gmail.com>
date Sat, 17 Sep 2011 22:43:37 +0200
parents c3767a453557
children be1e22e3f17c
files mamba/habitats/editor.py mamba/level.py
diffstat 2 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/habitats/editor.py	Sat Sep 17 22:42:33 2011 +0200
+++ b/mamba/habitats/editor.py	Sat Sep 17 22:43:37 2011 +0200
@@ -4,6 +4,7 @@
 from pygame.locals import SWSURFACE, KEYDOWN, K_1, K_2, MOUSEBUTTONDOWN
 import sys
 import traceback
+from StringIO import StringIO
 
 from mamba.engine import Habitat, NewHabitatEvent
 from mamba.widgets.level import EditLevelWidget
@@ -232,7 +233,9 @@
         if message:
             self.display_dialog(message)
             return
-        print "Upload!"
+        save_file = StringIO()
+        self.level.save_level(save_file=save_file)
+        # print save_file.getvalue()
         return True
 
     def load(self, ev, widget, level_dir=None, is_user_dir=False, subdir=''):
--- a/mamba/level.py	Sat Sep 17 22:42:33 2011 +0200
+++ b/mamba/level.py	Sat Sep 17 22:43:37 2011 +0200
@@ -129,12 +129,13 @@
             self.tiles = old_tiles
             self.tiles_ascii = old_tiles_ascii
 
-    def save_level(self, level_dir=None, is_user_dir=False):
+    def save_level(self, level_dir=None, is_user_dir=False, save_file=None):
         """Save the current state of the level"""
-        if level_dir is None:
-            level_dir = 'levels'
-        file_path = '%s/%s.txt' % (level_dir, self.level_name)
-        save_file = load_file(file_path, 'wb', is_user_dir=is_user_dir)
+        if save_file is None:
+            if level_dir is None:
+                level_dir = 'levels'
+            file_path = '%s/%s.txt' % (level_dir, self.level_name)
+            save_file = load_file(file_path, 'wb', is_user_dir=is_user_dir)
         save_file.write('%s\n' % self.name)
         save_file.write('%s\n' % self.tileset.name)
         save_file.write('%s\n' % self.background_track)