diff --git a/langsys/lang/de_DE.LAN b/langsys/lang/de_DE.LAN index 424f301..e529086 100644 --- a/langsys/lang/de_DE.LAN +++ b/langsys/lang/de_DE.LAN @@ -43,4 +43,5 @@ "gamey": "Spiel y Groesse", "modelobjs": "Ausgewaehlte Objekte zu Model machen", "demodelobjs": "Ausgewaehltes Model zu Objekte machen", +"COBI": "Objekte durch Bild erstellen", } \ No newline at end of file diff --git a/langsys/lang/en_EN.LAN b/langsys/lang/en_EN.LAN index 895c5ed..a94e0c6 100644 --- a/langsys/lang/en_EN.LAN +++ b/langsys/lang/en_EN.LAN @@ -43,4 +43,5 @@ "gamey": "Game y size", "modelobjs": "Turn selected objects into Model", "demodelobjs": "Turn selected model into objects", +"COBI": "Create objects by picture", } \ No newline at end of file diff --git a/main.py b/main.py index 86ceb68..0979447 100644 --- a/main.py +++ b/main.py @@ -36,6 +36,7 @@ from tkinter import ttk as tkk from tkinter import messagebox from tkinter import filedialog import copy +from PIL import Image import hashengine def norms(): global LH @@ -915,6 +916,56 @@ def COBS(target: str, offset=hashengine.vector2(), ignore=[" ",]): updselect(None) tempwin.destroy() +def COBI(target, offset=hashengine.vector2()): + target = Image.open(target) + target = target.resize(preview._size) + tempid = genid() + tempwin = tk.Tk() + stat = tk.Label(tempwin, text="NONE") + stat.grid() + speed = tk.Label(tempwin, text="NONE") + speed.grid() + tempwin.update() + if GUIe == True: objtree.insert("", tk.END, text=LH.string("IOM"), image=icons["model"], iid=tempid, tags=("HASHMODEL",)) + count = 1 + fpscount = 0 + timestamp = time.time() + fps = 0 + for y in range(preview._size[1]): + y + for x in range(preview._size[0]): + stat.config(text=f"{count}/{preview._size[0]*preview._size[1]}") + speed.config(text=f"{fps}/s") + tempwin.update() + count += 1 + fpscount += 1 + if time.time()-timestamp > 0.1: + fps = fpscount*10 + fpscount = 0 + timestamp = time.time() + temp = add("obj", tempid, False) + objtree.item(temp, text=f"{x}:{y}") + #gamedata[temp]["args"]["ID"] + gamedata[temp]["args"]["char"] = " " + gamedata[temp]["name"] = f"{x}:{y}" + setattr(preview.getobjbyid(gamedata[temp]["args"]["ID"]), "char", " ") + gamedata[temp]["args"]["position"] = hashengine.vector2(x, y)+offset + setattr(preview.getobjbyid(gamedata[temp]["args"]["ID"]), "position", hashengine.vector2(x, y)+offset) + gamedata[temp]["args"]["anchored"] = True + setattr(preview.getobjbyid(gamedata[temp]["args"]["ID"]), "anchored", True) + gamedata[temp]["args"]["collide"] = True + setattr(preview.getobjbyid(gamedata[temp]["args"]["ID"]), "collide", True) + color = target.getpixel((x, y)) + fcolor = hashengine.color3(color[0], color[1], color[2]) + bcolor = hashengine.color3(color[0], color[1], color[2]) + gamedata[temp]["args"]["fcolor"] = fcolor + gamedata[temp]["args"]["bcolor"] = bcolor + setattr(preview.getobjbyid(gamedata[temp]["args"]["ID"]), "fcolor", fcolor) + setattr(preview.getobjbyid(gamedata[temp]["args"]["ID"]), "bcolor", bcolor) + #preview.render() + updselect(None) + tempwin.destroy() + def updselect(event): preview.render() selection = objtree.selection() @@ -1066,6 +1117,7 @@ def GUIinit(): addmenu.add_separator() addmenu.add_command(label=LH.string("IPS"), command=importPS) addmenu.add_command(label=LH.string("COBS"), command=lambda: COBS(acode(" "))) + addmenu.add_command(label=LH.string("COBI"), command=lambda: COBI(filedialog.askopenfilename())) #addmenu.add_command(label=LH.string("obj"), command=lambda: muladd("obj")) testmenu = tk.Menu(menu) @@ -1218,13 +1270,19 @@ def execcmd(target): except Exception as e: return e +def execlist(target): + for i in target: + print(f"> {i}") + execcmd(i) + def cmd(): print(f"hashengine version: {version}") print("CMD") - autoexecute = ["loadplugins()"] - for i in autoexecute: - print(f"> {i}") - execcmd(i) + print("running autoexecute commands...") + execlist(["threading.Thread(target=GUIinit).start()", "loadplugins()"]) + if os.path.exists("autoexec"): + print("running custom autoexecute...") + execlist(["temp = open('autoexec', 'r')", "temp = temp.readlines()", "execlist(temp)"]) while True: cmd = input("> ") print(execcmd(cmd)) @@ -1293,6 +1351,5 @@ attypes = { "color3": hashengine.color3, } if __name__ == "__main__": - threading.Thread(target=cmd).start() - GUIinit() + cmd() stderrfile.close() \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 2cbc963..d9bb6de 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -{"easygui", "simpleaudio"} \ No newline at end of file +{"easygui", "simpleaudio", "pillow"} \ No newline at end of file