diff --git a/.GitImages/Steam_logo.svg b/.GitImages/Steam_logo.svg new file mode 100644 index 0000000..085bda7 --- /dev/null +++ b/.GitImages/Steam_logo.svg @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/Editor/editor.py b/Editor/editor.py index 47bec31..9a4d256 100644 --- a/Editor/editor.py +++ b/Editor/editor.py @@ -226,11 +226,6 @@ class Editor: self.savefile('list', fetch, permissions=True) self.has_filenames_changed = False - def strip_to_filename(self, s): - for bad in self.WINDOWS_BADCHARS: - s = s.replace(bad, '') - return s - def sha(self, data): sha = hashlib.sha256() data = data.encode('utf-8') diff --git a/Logogame/images/steam.png b/Logogame/images/steam.png new file mode 100644 index 0000000..8d66c04 Binary files /dev/null and b/Logogame/images/steam.png differ diff --git a/Logogame/logos.db b/Logogame/logos.db index 924dfb1..06dd66b 100644 Binary files a/Logogame/logos.db and b/Logogame/logos.db differ diff --git a/Logogame/logos.py b/Logogame/logos.py index ba79763..8911da3 100644 --- a/Logogame/logos.py +++ b/Logogame/logos.py @@ -18,7 +18,6 @@ class LogoGame: self.WINDOWS_BADCHARS = '\\/?:*"><|' self.t = tkinter.Tk() self.t.title('Logogame') - self.tkinter_elements = [] if not os.path.exists('logos.db'): print('You\'re missing the game\'s logo database!') print('Cannot proceed!') @@ -30,11 +29,21 @@ class LogoGame: self.color_green = '#31f13a' self.color_red = '#e23939' + self.dbindex_id = 0 + self.dbindex_images = 1 + self.dbindex_name = 2 + self.dbindex_solutions = 3 + self.dbindex_tag = 4 + self.dbindex_solved = 5 + self.sql = sqlite3.connect('logos.db') self.cur = self.sql.cursor() self.stats_main = self.stats_load('stats') self.playerstats_load(self.stats_main.playername) + self.tkinter_elements = [] + self.active_tags = set() + self.w = 1062 self.h = 600 self.screenwidth = self.t.winfo_screenwidth() @@ -46,10 +55,10 @@ class LogoGame: self.geometrystring = '%dx%d+%d+%d' % (self.windowwidth, self.windowheight, self.windowx, self.windowy) self.t.geometry(self.geometrystring) - self.uirefresher = self.buildui_main - self.buildui_main() + self.uirefresher = self.gui_build_main + self.gui_build_main() - self.t.bind('', self.update_wh) + #self.t.bind('', self.update_wh) self.t.mainloop() @@ -67,35 +76,43 @@ class LogoGame: self.tkinter_elements[0].destroy() del self.tkinter_elements[0] - def buildui_main(self, *b): + def gui_build_main(self, *b): self.destroy_all_elements() - x = self.w - y = self.h - + ### + self.frame_mainmenu = tkinter.Frame(self.t) + self.frame_mainmenu.pack(expand=True, anchor='center') + self.tkinter_elements.append(self.frame_mainmenu) + # self.button_playgame = tkinter.Button( - self.t, + self.frame_mainmenu, text='Play', #relief='flat', font=self.font_main, bg=self.color_green, activebackground=self.color_green, - command=self.buildui_game) + command=self.gui_build_game) self.button_playgame.grid(row=10, column=5) - - self.label_playername = tkinter.Label(self.t, text='Player name: ', font=self.font_main) + self.tkinter_elements.append(self.button_playgame) + # + self.label_playername = tkinter.Label( + self.frame_mainmenu, + text='Player name: ', + font=self.font_main) self.label_playername.grid(row=30, column=4) - + self.tkinter_elements.append(self.label_playername) + # self.entry_playername = tkinter.Entry( - self.t, + self.frame_mainmenu, font=self.font_main, relief='solid', width=30) self.entry_playername.bind('', lambda x: self.playername_set(self.entry_playername.get())) self.entry_playername.insert(0, self.stats_main.playername) self.entry_playername.grid(row=30, column=5) - + self.tkinter_elements.append(self.entry_playername) + # self.button_playername = tkinter.Button( - self.t, + self.frame_mainmenu, text='Set', font=self.font_small, #relief='flat', @@ -103,30 +120,54 @@ class LogoGame: activebackground=self.color_blue, command=lambda: self.playername_set(self.entry_playername.get())) self.button_playername.grid(row=30, column=6) - - self.label_playerhash = tkinter.Label(self.t, text=self.sha8(self.stats_main.playername), + self.tkinter_elements.append(self.button_playername) + # + self.label_playerhash = tkinter.Label( + self.frame_mainmenu, + text=self.sha8(self.stats_main.playername), font=self.font_main) self.label_playerhash.grid(row=30, column=7) - - self.tkinter_elements.append(self.button_playgame) - self.tkinter_elements.append(self.label_playername) - self.tkinter_elements.append(self.entry_playername) - self.tkinter_elements.append(self.button_playername) self.tkinter_elements.append(self.label_playerhash) + ### - def buildui_game(self, *b): + def gui_build_game(self, *b): self.destroy_all_elements() - + ### + self.frame_gametoolbar = tkinter.Frame(self.t) + self.frame_gametoolbar.pack(fill='x', anchor='n') + self.tkinter_elements.append(self.frame_gametoolbar) + # self.button_back = tkinter.Button( - self.t, + self.frame_gametoolbar, text='X', font=self.font_main, bg=self.color_red, activebackground=self.color_red, - command=self.buildui_main) + command=self.gui_build_main) self.button_back.grid(row=0, column=0) - self.tkinter_elements.append(self.button_back) + # + self.frame_gametaglist = tkinter.Frame(self.t) + self.frame_gametaglist.pack(expand=True, fill='y', anchor='e') + self.tkinter_elements.append(self.frame_gametaglist) + # + alltags = self.get_all_tags() + for tag in alltags: + intvar = tkinter.IntVar() + intvar.title=tag + checkbox = tkinter.Checkbutton(self.frame_gametaglist, text=tag, variable=intvar) + checkbox.intvar = intvar + checkbox.grid(row=alltags.index(tag), column=0, sticky='w') + intvar.set(1) + self.tkinter_elements.append(checkbox) + self.active_tags.add(tag) + ### + + def gui_build_logo(self, *b): + self.destroy_all_elements() + ### + + def playername_set(self, newname): if newname != self.stats_main.playername: @@ -145,9 +186,6 @@ class LogoGame: sha = sha.hexdigest() return sha[:8] - def getnext(self): - pass - def png_load(self, filename, resize=None): if filename[-4:] != '.png': filename = filename + '.png' @@ -206,4 +244,16 @@ class LogoGame: s = s.replace(badchar, '') return s + def get_all_tags(self): + self.cur.execute('SELECT * FROM logos') + fetch = self.cur.fetchall() + alltags = [] + for item in fetch: + itemtags = item[self.dbindex_tag] + itemtags = itemtags.replace(', ', ',') + itemtags = itemtags.split(',') + alltags += itemtags + alltags.sort() + return alltags + logogame = LogoGame() \ No newline at end of file diff --git a/Logogame/playerdata/Person_6007db63.db b/Logogame/playerdata/Person_6007db63.db new file mode 100644 index 0000000..ecbd3ee Binary files /dev/null and b/Logogame/playerdata/Person_6007db63.db differ diff --git a/ascii/PNGCREATOR.bat b/ascii/PNGCREATOR.bat new file mode 100644 index 0000000..34e39ef --- /dev/null +++ b/ascii/PNGCREATOR.bat @@ -0,0 +1 @@ +for %%i in (*.ps) do C:\bit\ghostscript\bin\gswin64 -r180 -sDEVICE=png16m -dBATCH -dNOPAUSE -dSAFER -dEPSCrop -Ic:C:\Windows\Fonts -sOutputFile=%%~ni.png %%i \ No newline at end of file diff --git a/ascii/text_to_ps.py b/ascii/text_to_ps.py new file mode 100644 index 0000000..f0b36df --- /dev/null +++ b/ascii/text_to_ps.py @@ -0,0 +1,30 @@ +import os +from PIL import Image +import subprocess +import tkinter + +filename_noext = input(']>> ') +filename_text = filename_text.replace('.txt', '') +filename_text = filename_noext + '.txt' +filename_ghost = filename_noext + '_render.ps' + + + +filea = open(filename_text, 'r') +lines = filea.read() +lines_split = lines.split('\n') +lines_height = len(lines_split) +lines_width = len(lines_split[0]) +print('%d x %d' % (lines_width, lines_height)) +lines_height *= 17 +lines_width *= 7 +filea.close() +t = tkinter.Tk() +c = tkinter.Canvas(t, width=lines_width, height=lines_height) +c.pack() +c.create_text(0, 0, text=lines, anchor="nw", font=("Courier New", 12)) +print('Writing Postscript') +c.postscript(file=filename_ghost, width=lines_width, height=lines_height) +t.destroy() +print('Writing PNG') +subprocess.Popen('PNGCREATOR.bat', shell=True, cwd='D:/!/o/asscii') \ No newline at end of file