added Create objects by image
parent
7c8e354103
commit
b42baa211a
|
@ -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",
|
||||
}
|
|
@ -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",
|
||||
}
|
69
main.py
69
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()
|
|
@ -1 +1 @@
|
|||
{"easygui", "simpleaudio"}
|
||||
{"easygui", "simpleaudio", "pillow"}
|
Loading…
Reference in New Issue