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
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)
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
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)