diff --git a/main.py b/main.py index 7b24c56..bcac173 100644 --- a/main.py +++ b/main.py @@ -18,6 +18,7 @@ from cfg import * from cld import * from ctx import * from fs import * +from desktop import * from desktop_Platform import * from desktop_Window import * from ht_Context import * @@ -42,18 +43,12 @@ def process(c): p.c = c # Perform context dependent calls of desktop functions. # Similar to context functions, but no platform is returned. - ### desktop_deselectMismatchedTiles(p) + desktop_applyConfigInit(p) ctrl.registerCallback(process) ctrl.set("cfgPath", CFG) ctrl.set("scriptDir", SCRIPT_DIR) -ctrl.set("windowWidth", 900) -ctrl.set("windowHeight", 600) -ctrl.set("windowAntialiasing", False) -ctrl.set("windowBackgroundColor", "#ffffff") -ctrl.set("windowTitle", "Прототип: Отель") - #desktop_loadTextures(p) wnd = desktop_Window(p) diff --git a/py/desktop.py b/py/desktop.py new file mode 100644 index 0000000..5db1a18 --- /dev/null +++ b/py/desktop.py @@ -0,0 +1,30 @@ +import arcade +from cld import * +from desktop_Platform import * + +# Pass config init key-value pairs to context controller +# +# Conditions: +# 1. Config tree has just been parsed +def desktop_applyConfigInit(p): + if ( + p.c.recentField == "cfgTree" + ): + for key in p.c.cfgTree["init"]: + value = p.c.cfgTree["init"][key] + # Boolean. + if ( + value == "false" + ): + value = False + elif ( + value == "true" + ): + value = True + # Float. + elif ( + cld_isdigit(value) + ): + value = float(value) + + p.ctrl.set(key, value) diff --git a/py/desktop_Platform.py b/py/desktop_Platform.py index 5631822..0f5c02e 100644 --- a/py/desktop_Platform.py +++ b/py/desktop_Platform.py @@ -4,6 +4,6 @@ class desktop_Platform: def __init__(self): self.c = None self.ctrl = None - self.mousePosition = [] - self.dbgSprites = arcade.SpriteList() - self.dbgTextures = [] + self.staticSprites = arcade.SpriteList() + self.textureDescriptions = {} + self.textures = {} diff --git a/py/desktop_Window.py b/py/desktop_Window.py index 264a0ab..0af6e0d 100644 --- a/py/desktop_Window.py +++ b/py/desktop_Window.py @@ -13,7 +13,7 @@ class desktop_Window(arcade.Window): def on_draw(self): arcade.start_render() - self.p.dbgSprites.draw() + self.p.staticSprites.draw() def on_mouse_press(self, x, y, button, key_modifiers): print("mouse press:", x, y) diff --git a/py/ht_Context.py b/py/ht_Context.py index 5eebe45..ac3db58 100644 --- a/py/ht_Context.py +++ b/py/ht_Context.py @@ -6,10 +6,11 @@ class ht_Context: self.cfgTree = {} self.didLaunch = False self.recentField = "none" + self.windowAntialiasing = False self.windowBackgroundColor = "#000000" - self.windowHeight = 0 + self.windowHeight: float = 0 self.windowTitle = "" - self.windowWidth = 0 + self.windowWidth: float = 0 def field(self, fieldName): return getattr(self, fieldName)