From 48986e80030e970a2175cd5e6f7516addff05877 Mon Sep 17 00:00:00 2001 From: justuswolff Date: Fri, 7 Jun 2024 21:48:52 +0200 Subject: [PATCH] manual model editing added --- langsys/lang/de_DE.LAN | 2 ++ langsys/lang/en_EN.LAN | 2 ++ main.py | 26 ++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/langsys/lang/de_DE.LAN b/langsys/lang/de_DE.LAN index 8cc4725..424f301 100644 --- a/langsys/lang/de_DE.LAN +++ b/langsys/lang/de_DE.LAN @@ -41,4 +41,6 @@ "settings": "Einstellungen", "gamex": "Spiel x Groesse", "gamey": "Spiel y Groesse", +"modelobjs": "Ausgewaehlte Objekte zu Model machen", +"demodelobjs": "Ausgewaehltes Model zu Objekte machen", } \ No newline at end of file diff --git a/langsys/lang/en_EN.LAN b/langsys/lang/en_EN.LAN index f8134dc..895c5ed 100644 --- a/langsys/lang/en_EN.LAN +++ b/langsys/lang/en_EN.LAN @@ -41,4 +41,6 @@ "settings": "Einstellungen", "gamex": "Game x size", "gamey": "Game y size", +"modelobjs": "Turn selected objects into Model", +"demodelobjs": "Turn selected model into objects", } \ No newline at end of file diff --git a/main.py b/main.py index 3f56214..aa65e0e 100644 --- a/main.py +++ b/main.py @@ -309,6 +309,30 @@ def renameobj(): if not "HASHMODEL" in objtree.item(target, "tags"): gamedata[target]["name"] = new +def modelobjs(): + #use detach and move + temp = objtree.selection() + targets = [] + for i in temp: + if not "objsel" in objtree.item(i, "tags"): continue + if objtree.parent(i) != "": continue + if gamedata[i]["id"] == "obj": + targets.append(i) + tempid = genid() + objtree.insert("", tk.END, text=LH.string("IOM"), image=icons["model"], iid=tempid, tags=("HASHMODEL",)) + for i in targets: + objtree.detach(i) + objtree.move(i, tempid, "end") + +def demodelobjs(): + #use detach and move + temp = objtree.focus() + if not "HASHMODEL" in objtree.item(temp, "tags"): return + for i in objtree.get_children(temp): + objtree.detach(i) + objtree.move(i, "", "end") + objtree.delete(temp) + def delobjg(target): objtree.delete(target) temp = gamedata.pop(target) @@ -950,6 +974,8 @@ def GUIinit(): rmenu = tk.Menu(container, tearoff=0) rmenu.add_command(label=LH.string("rename"), command=renameobj) rmenu.add_command(label=LH.string("delete"), command=delobj) + rmenu.add_command(label=LH.string("modelobjs"), command=modelobjs) + rmenu.add_command(label=LH.string("demodelobjs"), command=demodelobjs) objtree.bind("", rpopup)