diff --git a/file/strapA_16_9_832x456de.png b/file/strapA_16_9_832x456de.png deleted file mode 100644 index d2e3e0a..0000000 Binary files a/file/strapA_16_9_832x456de.png and /dev/null differ diff --git a/file/strapA_16_9_832x456en.png b/file/strapA_16_9_832x456en.png deleted file mode 100644 index 2a22d77..0000000 Binary files a/file/strapA_16_9_832x456en.png and /dev/null differ diff --git a/file/strapA_16_9_832x456es.png b/file/strapA_16_9_832x456es.png deleted file mode 100644 index 6e37f3e..0000000 Binary files a/file/strapA_16_9_832x456es.png and /dev/null differ diff --git a/file/strapA_16_9_832x456fr.png b/file/strapA_16_9_832x456fr.png deleted file mode 100644 index 9b197b4..0000000 Binary files a/file/strapA_16_9_832x456fr.png and /dev/null differ diff --git a/file/strapA_16_9_832x456ge.png b/file/strapA_16_9_832x456ge.png deleted file mode 100644 index 4b88b57..0000000 Binary files a/file/strapA_16_9_832x456ge.png and /dev/null differ diff --git a/file/strapA_16_9_832x456it.png b/file/strapA_16_9_832x456it.png deleted file mode 100644 index f3dd846..0000000 Binary files a/file/strapA_16_9_832x456it.png and /dev/null differ diff --git a/file/strapA_608x456de.png b/file/strapA_608x456de.png deleted file mode 100644 index 306505b..0000000 Binary files a/file/strapA_608x456de.png and /dev/null differ diff --git a/file/strapA_608x456en.png b/file/strapA_608x456en.png deleted file mode 100644 index 976da24..0000000 Binary files a/file/strapA_608x456en.png and /dev/null differ diff --git a/file/strapA_608x456es.png b/file/strapA_608x456es.png deleted file mode 100644 index 5ada77f..0000000 Binary files a/file/strapA_608x456es.png and /dev/null differ diff --git a/file/strapA_608x456fr.png b/file/strapA_608x456fr.png deleted file mode 100644 index 89bd362..0000000 Binary files a/file/strapA_608x456fr.png and /dev/null differ diff --git a/file/strapA_608x456ge.png b/file/strapA_608x456ge.png deleted file mode 100644 index 166a029..0000000 Binary files a/file/strapA_608x456ge.png and /dev/null differ diff --git a/file/strapA_608x456it.png b/file/strapA_608x456it.png deleted file mode 100644 index a747529..0000000 Binary files a/file/strapA_608x456it.png and /dev/null differ diff --git a/main.pyw b/main.pyw index d76cdf0..c4311cd 100644 --- a/main.pyw +++ b/main.pyw @@ -1,4 +1,5 @@ from tkinter import * +from PIL import Image, ImageFont from tkinter import messagebox, filedialog, ttk from threading import Thread import subprocess @@ -22,6 +23,7 @@ class ClassApp(): from source.patch_bmg import patch_bmg from source.install_mod import install_mod from source.restart import restart + from source.patch_img_desc import patch_img_desc # TODO: Wiki Github diff --git a/source/patch_file.py b/source/patch_file.py index 9eab9d3..189e34f 100644 --- a/source/patch_file.py +++ b/source/patch_file.py @@ -15,7 +15,7 @@ def patch_file(self): total_track = 0 with open("./convert_file.json") as f: fc = json.load(f) - max_step = len(fc["img"]) + total_track + 1 + len("EGFIS") + max_step = len(fc["img"]) + total_track + 2 + len("EGFIS") self.Progress(show=True, indeter=False, statut=self.translate("Conversion des fichiers"), max=max_step, step=0) self.Progress(statut=self.translate("Configuration de LE-CODE"), add=1) @@ -27,16 +27,12 @@ def patch_file(self): subprocess.call(["./tools/szs/wimgt", "ENCODE", "./file/" + file, "-x", fc["img"][file]] , creationflags=CREATE_NO_WINDOW) + self.Progress(statut=self.translate("Création des images descriptives"), add=1) + self.patch_img_desc() + for file in glob.glob(self.path_mkwf+"/files/Scene/UI/MenuSingle_?.szs"): self.patch_bmg(file) - # for i, file in enumerate(fc["bmg"]): - # self.Progress(statut=self.translate("Conversion des textes")+f"\n({i + 1}/{len(fc['bmg'])}) {file}", add=1) - # if not (os.path.exists("./file/" + get_filename(file) + ".bmg")): - # subprocess.call(["./tools/szs/wbmgt", "ENCODE", "./file/" + file] - # , creationflags=CREATE_NO_WINDOW) - - if not (os.path.exists("./file/auto-add/")): subprocess.call(["./tools/szs/wszst", "AUTOADD", self.path_mkwf + "/files/Race/Course/", "--DEST", "./file/auto-add/"], creationflags=CREATE_NO_WINDOW) diff --git a/source/patch_img_desc.py b/source/patch_img_desc.py new file mode 100644 index 0000000..264f7bf --- /dev/null +++ b/source/patch_img_desc.py @@ -0,0 +1,25 @@ +from PIL import Image +import glob + +from .definition import * + + +def patch_img_desc(self): + il = Image.open("./file/img_desc/illustration.png") + il_16_9 = il.resize((832, 456)) + il_4_3 = il.resize((608, 456)) + + for file_lang in glob.glob("./file/img_desc/??.png"): + img_lang = Image.open(file_lang) + img_lang_16_9 = img_lang.resize((832, 456)) + img_lang_4_3 = img_lang.resize((608, 456)) + + new_16_9 = Image.new("RGBA", (832, 456), (0, 0, 0, 255)) + new_16_9.paste(il_16_9, (0, 0), il_16_9) + new_16_9.paste(img_lang_16_9, (0, 0), img_lang_16_9) + new_16_9.save(f"./file/strapA_16_9_832x456{get_filename(get_nodir(file_lang))}.png") + + new_4_3 = Image.new("RGBA", (832, 456), (0, 0, 0, 255)) + new_4_3.paste(il_4_3, (0, 0), il_4_3) + new_4_3.paste(img_lang_4_3, (0, 0), img_lang_4_3) + new_4_3.save(f"./file/strapA_608x456{get_filename(get_nodir(file_lang))}.png") \ No newline at end of file diff --git a/translation.json b/translation.json index d5cf640..80d6f5c 100644 --- a/translation.json +++ b/translation.json @@ -1 +1 @@ -{"en": {"Patch des textes ": "Patching text ", "Al\u00e9atoire: Toutes les pistes": "Random: All tracks", "Al\u00e9atoire: Pistes Originales": "Random: Original tracks", "Al\u00e9atoire: Custom Tracks": "Random: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Random: New tracks", "MKWFaraphel Installateur": "MKWFaraphel Installer", "Jeu Wii": "Wii game", "Jeu original": "Original game", "Erreur": "Error", "Le chemin de fichier est invalide": "The file path in invalid", "Attention": "Warning", "Ce dossier sera \u00e9cras\u00e9 si vous installer le mod !\n\u00cates-vous s\u00fbr de vouloir l'utiliser ?": "This directory will be overwritten if you install the mod !\nAre you sure you want to use it ?", "Extraction du jeu...": "Extracting the game...", "Le type de fichier n'est pas reconnu": "This file type is not supported", "Cette ROM est d\u00e9j\u00e0 modd\u00e9, il est d\u00e9conseill\u00e9 de l'utiliser pour installer le mod": "This game is already modded, it is not recommended to use it to install the mod", "Extraire le fichier": "Extract file", "Preparer les fichiers": "Prepare files", "Action": "Action", "Installer le mod": "Install mod", "Dossier": "Directory", "Langage : ": "Language : ", "Mise \u00e0 jour disponible !": "Update available !", "Une mise \u00e0 jour est disponible, souhaitez-vous l'installer ?": "An update is available, do you want to install it ?", "T\u00e9l\u00e9chargement de Updater en cours...": "Downloading the Updater...", "fin du t\u00e9l\u00e9chargement, d\u00e9but de l'extraction...": "end of the download, extracting...", "fin de l'extraction": "finished extracting", "lancement de l'application...": "starting application...", "Modification de": "Modifying", "Recompilation de": "Recompilating", "Conversion en": "Converting to", "Changement de l'ID du jeu": "editing game's ID", "Fin": "End", "L'installation est termin\u00e9 !": "The mod has been installed !", "Conversion des fichiers": "Converting files", "Conversion des images": "Converting images", "Conversion des textes": "Converting texts", "Conversion des courses": "Converting races", "Configuration de LE-CODE": "Configurating LE-CODE"}, "ge": {"Al\u00e9atoire: Toutes les pistes": "Zuf\u00e4llig: Alle Spuren", "Al\u00e9atoire: Pistes Originales": "Zuf\u00e4llig: Original-Spuren", "Al\u00e9atoire: Custom Tracks": "Zuf\u00e4llig: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Zuf\u00e4llig: Neue Spuren"}, "it": {"Al\u00e9atoire: Toutes les pistes": "Casuale: Tutte le tracce", "Al\u00e9atoire: Pistes Originales": "Casuale: Tracce originali", "Al\u00e9atoire: Custom Tracks": "Casuale: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Casuale: Nuovi brani"}, "sp": {"Al\u00e9atoire: Toutes les pistes": "Aleatorio: Todas las pistas", "Al\u00e9atoire: Pistes Originales": "Aleatorio: Pistas originales", "Al\u00e9atoire: Custom Tracks": "Aleatorio: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Aleatorio: Pistas nuevas"}, "selected": "fr"} \ No newline at end of file +{"en": {"Création des images descriptives": "Creation of descriptive images","Patch des textes ": "Patching text ", "Al\u00e9atoire: Toutes les pistes": "Random: All tracks", "Al\u00e9atoire: Pistes Originales": "Random: Original tracks", "Al\u00e9atoire: Custom Tracks": "Random: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Random: New tracks", "MKWFaraphel Installateur": "MKWFaraphel Installer", "Jeu Wii": "Wii game", "Jeu original": "Original game", "Erreur": "Error", "Le chemin de fichier est invalide": "The file path in invalid", "Attention": "Warning", "Ce dossier sera \u00e9cras\u00e9 si vous installer le mod !\n\u00cates-vous s\u00fbr de vouloir l'utiliser ?": "This directory will be overwritten if you install the mod !\nAre you sure you want to use it ?", "Extraction du jeu...": "Extracting the game...", "Le type de fichier n'est pas reconnu": "This file type is not supported", "Cette ROM est d\u00e9j\u00e0 modd\u00e9, il est d\u00e9conseill\u00e9 de l'utiliser pour installer le mod": "This game is already modded, it is not recommended to use it to install the mod", "Extraire le fichier": "Extract file", "Preparer les fichiers": "Prepare files", "Action": "Action", "Installer le mod": "Install mod", "Dossier": "Directory", "Langage : ": "Language : ", "Mise \u00e0 jour disponible !": "Update available !", "Une mise \u00e0 jour est disponible, souhaitez-vous l'installer ?": "An update is available, do you want to install it ?", "T\u00e9l\u00e9chargement de Updater en cours...": "Downloading the Updater...", "fin du t\u00e9l\u00e9chargement, d\u00e9but de l'extraction...": "end of the download, extracting...", "fin de l'extraction": "finished extracting", "lancement de l'application...": "starting application...", "Modification de": "Modifying", "Recompilation de": "Recompilating", "Conversion en": "Converting to", "Changement de l'ID du jeu": "editing game's ID", "Fin": "End", "L'installation est termin\u00e9 !": "The mod has been installed !", "Conversion des fichiers": "Converting files", "Conversion des images": "Converting images", "Conversion des textes": "Converting texts", "Conversion des courses": "Converting races", "Configuration de LE-CODE": "Configurating LE-CODE"}, "ge": {"Al\u00e9atoire: Toutes les pistes": "Zuf\u00e4llig: Alle Spuren", "Al\u00e9atoire: Pistes Originales": "Zuf\u00e4llig: Original-Spuren", "Al\u00e9atoire: Custom Tracks": "Zuf\u00e4llig: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Zuf\u00e4llig: Neue Spuren"}, "it": {"Al\u00e9atoire: Toutes les pistes": "Casuale: Tutte le tracce", "Al\u00e9atoire: Pistes Originales": "Casuale: Tracce originali", "Al\u00e9atoire: Custom Tracks": "Casuale: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Casuale: Nuovi brani"}, "sp": {"Al\u00e9atoire: Toutes les pistes": "Aleatorio: Todas las pistas", "Al\u00e9atoire: Pistes Originales": "Aleatorio: Pistas originales", "Al\u00e9atoire: Custom Tracks": "Aleatorio: Custom Tracks", "Al\u00e9atoire: Pistes Nouvelles": "Aleatorio: Pistas nuevas"}, "selected": "fr"} \ No newline at end of file