Strip newlines off map when loading
[erdslangetjie.git] / erdslangetjie / editor / editor.py
index 998ad4057e90e4d4c3ea4b0cfad29a9e3eb42474..c2d2745559801cada06ce3fe2f042c4edfbf9ca9 100644 (file)
@@ -1,32 +1,56 @@
 import sys
 import os
 import kivy
 import sys
 import os
 import kivy
-from erdslangetjie.data import filepath, load
 
 kivy.require('1.6.0')
 
 from kivy.app import App
 from kivy.logger import Logger, LoggerHistory
 from kivy.uix.widget import Widget
 
 kivy.require('1.6.0')
 
 from kivy.app import App
 from kivy.logger import Logger, LoggerHistory
 from kivy.uix.widget import Widget
+from kivy.uix.floatlayout import FloatLayout
+from kivy.graphics import Color, Rectangle
+
+from erdslangetjie.data import filepath, load
+from erdslangetjie.level import Level
 
 
 
 
+class EditorWindow(FloatLayout):
 
 
-class EditorWindow(Widget):
     def __init__(self, level):
     def __init__(self, level):
+        super(EditorWindow, self).__init__(size=(960, 960))
         if os.path.exists(filepath(level)):
         if os.path.exists(filepath(level)):
-            self.level_data = load(level)
+            level_data = load(level)
             self.level = level
         elif os.path.exists(filepath('levels/' + level)):
             self.level = level
         elif os.path.exists(filepath('levels/' + level)):
-            self.level_data = load('levels/' + level)
+            level_data = load('levels/' + level)
             self.level = 'levels/' + level
         else:
             print 'Unable to find %s - treating this as a new level' % level
             self.level = 'levels/' + level
         else:
             print 'Unable to find %s - treating this as a new level' % level
-            self.level_data = load('levels/blank.txt')
+            level_data = load('levels/blank.txt')
             if 'levels/' in level:
                 self.level = level
             else:
                 self.level = 'levels/' + level
             if 'levels/' in level:
                 self.level = level
             else:
                 self.level = 'levels/' + level
-        super(EditorWindow, self).__init__()
+        self.level_obj = Level()
+        self.level_obj.load(level_data)
+        level_data.close()
+
+    def build(self):
+        self.clear_widgets()
+        tiles = self.level_obj.get_tiles()
+        tile_size = 24
+        bx, by = 0, 0
+        for tile_line in tiles:
+            bx = 0
+            for tile in tile_line:
+                node = Widget(size=(tile_size, tile_size), pos=(bx, by))
+                with node.canvas:
+                    Color(1, 1, 1)
+                    Rectangle(pos=node.pos, size=node.size,
+                            texture=tile.texture)
+                self.add_widget(node)
+                bx += tile_size
+            by += tile_size
 
 
 class EditorApp(App):
 
 
 class EditorApp(App):
@@ -36,7 +60,9 @@ class EditorApp(App):
         super(EditorApp, self).__init__()
 
     def build(self):
         super(EditorApp, self).__init__()
 
     def build(self):
-        return EditorWindow(self.level)
+        editor = EditorWindow(self.level)
+        editor.build()
+        return editor
 
 
 def main():
 
 
 def main():