X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2Feditor%2Feditor.py;h=ef08b813e01f7c2d30c4dccbda827ba2bbe21df1;hb=034f4f8a7792ab7f4777d3a13e2ab139b3d7be4a;hp=1606fd63bcd6f2d92a184ff197e6341941652716;hpb=517be20b35d84ce31d2ba7270a4c7fbb65297db4;p=erdslangetjie.git diff --git a/erdslangetjie/editor/editor.py b/erdslangetjie/editor/editor.py index 1606fd6..ef08b81 100644 --- a/erdslangetjie/editor/editor.py +++ b/erdslangetjie/editor/editor.py @@ -8,6 +8,7 @@ from kivy.uix.widget import Widget from kivy.uix.floatlayout import FloatLayout from kivy.graphics import Color, Rectangle from kivy.uix.label import Label +from kivy.uix.popup import Popup from kivy.utils import platform from kivy.config import Config @@ -75,6 +76,8 @@ class EditorWindow(FloatLayout): self.draw_save_button() def _draw_tile(self, tile_pos, tile): + if tile_pos in self.nodes: + self.remove_widget(self.nodes[tile_pos]) node = Widget(size=(TILE_SIZE, TILE_SIZE), pos=tile_pos) node.bind(on_touch_down=self.change_node) node.bind(on_touch_move=self.change_node) @@ -110,7 +113,24 @@ class EditorWindow(FloatLayout): self.add_widget(save_label) def do_save(self, label, ref): - pass + try: + self.level_obj.validate() + except RuntimeError as err: + print err + popup = Popup(title='Error', + content=Label(text='Level not valid: %s' % err), + size_hint=(.5, .5)) + popup.open() + return + save_data = self.level_obj.get_level_data() + savefile = file(filepath(self.level), 'w') + savefile.write(save_data) + savefile.write('\n') + savefile.close() + popup = Popup(title='Success', + content=Label(text='Level saved to %s' % self.level), + size_hint=(.5, .5)) + popup.open() def change_tool(self, label, ref): self.tool = ref @@ -131,8 +151,6 @@ class EditorWindow(FloatLayout): self.level_obj.set_tile_type(tile_pos, action) for map_pos, new_tile in self.level_obj.get_changed_tiles(): node_pos = (map_pos[0] * TILE_SIZE, map_pos[1] * TILE_SIZE) - old_node = self.nodes[node_pos] - self.remove_widget(old_node) self._draw_tile(node_pos, new_tile)