Disable logging earlier
[erdslangetjie.git] / erdslangetjie / editor / editor.py
index ffff296f3d235c6ff6a8931363807a96b7e6a566..4cfe183e213391bc42e5218c86b2cdf2f7ba3902 100644 (file)
@@ -1,31 +1,53 @@
 import sys
 import os
-import kivy
-from erdslangetjie.data import filepath, load
 
-kivy.require('1.6.0')
+from erdslangetjie.constants import TILE_SIZE
 
 from kivy.app import App
 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):
+        super(EditorWindow, self).__init__(size=(800, 600))
         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_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_data = load('levels/blank.txt')
+            level_data = load('levels/blank.txt')
             if 'levels/' in level:
                 self.level = level
             else:
                 self.level = 'levels/' + level
-        super(EditorWindow, self).__init__()
+        self.level_obj = Level(level_data)
+        level_data.close()
+        self.level_obj.load_tiles()
+
+    def build(self):
+        self.clear_widgets()
+        tiles = self.level_obj.get_tiles()
+        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):
@@ -35,7 +57,9 @@ class EditorApp(App):
         super(EditorApp, self).__init__()
 
     def build(self):
-        return EditorWindow(self.level)
+        editor = EditorWindow(self.level)
+        editor.build()
+        return editor
 
 
 def main():