X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2Feditor%2Feditor.py;h=04c95d93593ccd063d2c4d2a569a3d6fbd24fa63;hb=ca76028e56dd032a2ad79aafd9da88b1a1566895;hp=ffff296f3d235c6ff6a8931363807a96b7e6a566;hpb=db0462036d92f8178523490f82c14eed17043de9;p=erdslangetjie.git diff --git a/erdslangetjie/editor/editor.py b/erdslangetjie/editor/editor.py index ffff296..04c95d9 100644 --- a/erdslangetjie/editor/editor.py +++ b/erdslangetjie/editor/editor.py @@ -1,31 +1,56 @@ 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 +from kivy.uix.floatlayout import FloatLayout +from kivy.graphics import Color, Rectangle + +from erdslangetjie.data import filepath, load +from erdslangetjie.level import Level +from erdslangetjie.constants import TILE_SIZE, QUIET +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 +60,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(): @@ -43,6 +70,10 @@ def main(): level = sys.argv[1] else: level = 'level1.txt' + if QUIET: + for hdlr in Logger.handlers[:]: + if not isinstance(hdlr, LoggerHistory): + Logger.removeHandler(hdlr) EditorApp(level).run()