X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2Feditor%2Feditor.py;h=4cfe183e213391bc42e5218c86b2cdf2f7ba3902;hb=20dd9168a45c3bf566e47604418d7d432854946b;hp=2d635d57d2701e599991db1833044234b547859d;hpb=7d29b66d3a08cb692a4a67c4dae9886852872cf9;p=erdslangetjie.git diff --git a/erdslangetjie/editor/editor.py b/erdslangetjie/editor/editor.py index 2d635d5..4cfe183 100644 --- a/erdslangetjie/editor/editor.py +++ b/erdslangetjie/editor/editor.py @@ -1,23 +1,73 @@ -import kivy +import sys +import os -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(Widget): - pass + +class EditorWindow(FloatLayout): + + def __init__(self, level): + super(EditorWindow, self).__init__(size=(800, 600)) + if os.path.exists(filepath(level)): + level_data = load(level) + self.level = level + elif os.path.exists(filepath('levels/' + level)): + level_data = load('levels/' + level) + self.level = 'levels/' + level + else: + print 'Unable to find %s - treating this as a new level' % level + level_data = load('levels/blank.txt') + if 'levels/' in level: + self.level = level + else: + self.level = 'levels/' + level + 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): + def __init__(self, level): + self.level = level + super(EditorApp, self).__init__() + def build(self): - return EditorWindow() + editor = EditorWindow(self.level) + editor.build() + return editor def main(): - EditorApp().run() + if len(sys.argv) > 1: + level = sys.argv[1] + else: + level = 'level1.txt' + EditorApp(level).run() if __name__ == '__main__':