added "track selection" menu allowing you to only install mod for 3, 2 or 1 star track (track from other Mario Kart are not affected)

This commit is contained in:
raphael60650 2021-07-14 12:01:07 +02:00
parent be9036310b
commit 6d1411e199
5 changed files with 32 additions and 8 deletions

View file

@ -22,6 +22,9 @@ def __init__(self):
self.boolvar_dont_check_for_update = BooleanVar(value=self.option["dont_check_for_update"])
self.boolvar_dont_check_track_sha1 = BooleanVar(value=self.option["dont_check_track_sha1"])
self.intvar_process_track = IntVar(value=self.option["process_track"])
self.boolvar_use_1star_track = BooleanVar(value=True)
self.boolvar_use_2star_track = BooleanVar(value=True)
self.boolvar_use_3star_track = BooleanVar(value=True)
self.root.title(self.translate("MKWFaraphel Installer"))
self.root.resizable(False, False)
@ -46,6 +49,12 @@ def __init__(self):
self.menu_format.add_radiobutton(label="CISO", variable=self.stringvar_game_format, value="CISO", command=lambda: self.change_option("format", "CISO"))
self.menu_format.add_radiobutton(label="WBFS", variable=self.stringvar_game_format, value="WBFS", command=lambda: self.change_option("format", "WBFS"))
self.menu_trackselection = Menu(self.menu_bar, tearoff=0)
self.menu_bar.add_cascade(label=self.translate("Track selection"), menu=self.menu_trackselection)
self.menu_trackselection.add_checkbutton(label=self.translate("Select"," 1 ","star"), variable=self.boolvar_use_1star_track)
self.menu_trackselection.add_checkbutton(label=self.translate("Select"," 2 ","stars"), variable=self.boolvar_use_2star_track)
self.menu_trackselection.add_checkbutton(label=self.translate("Select"," 3 ","stars"), variable=self.boolvar_use_3star_track)
self.menu_advanced = Menu(self.menu_bar, tearoff=0)
self.menu_bar.add_cascade(label=self.translate("Advanced"), menu=self.menu_advanced)
self.menu_advanced.add_checkbutton(label=self.translate("Disable downloads"), variable=self.boolvar_disable_download, command=lambda: self.change_option("disable_download", self.boolvar_disable_download))

View file

@ -9,7 +9,7 @@ def create_lecode_config(self):
else: warning = ""
if "score" in track:
if track["score"] > 0:
if 0 < track["score"] <= 3:
return "" * track["score"] + "" * (3 - track["score"]) + warning + " "
return ""
@ -43,9 +43,9 @@ def create_lecode_config(self):
ctfile.write(header)
rctfile.write(header)
for cup in ctconfig["cup"]: # defined cup section
for cup in ctconfig["cup"]: # defined cup section
_cup_config = ctconfig["cup"][cup]
if int(cup) >= 9: # Course qui ne sont ni les originales, ni les courses aléatoires.
if int(cup) >= 9: # Track that are not original and not random selection
cup = f'\nC "{_cup_config["name"]}"\n'
ctfile.write(cup)
rctfile.write(cup)
@ -55,7 +55,16 @@ def create_lecode_config(self):
ctfile.write(get_ctfile_text(_course_config, race=False))
rctfile.write(get_ctfile_text(_course_config, race=True))
for i, _course_config in enumerate(ctconfig["tracks_list"]): # undefined cup section
tracks_list = ctconfig["tracks_list"]
if not self.boolvar_use_1star_track.get(): # if 1 star track are disabled, remove them
tracks_list = list(filter(lambda track: track.get("score") != 1, tracks_list))
if not self.boolvar_use_2star_track.get(): # if 2 stars track are disabled, remove them
tracks_list = list(filter(lambda track: track.get("score") != 2, tracks_list))
if not self.boolvar_use_3star_track.get(): # if 3 stars track are disabled, remove them
tracks_list = list(filter(lambda track: track.get("score") != 3, tracks_list))
# using dict.get allow track that with no "score" attribute to not raise an exception by returning None
for i, _course_config in enumerate(tracks_list): # undefined cup section
if i % 4 == 0:
cup = f'\nC "TL{i//4}"\n'
ctfile.write(cup)
@ -65,8 +74,8 @@ def create_lecode_config(self):
rctfile.write(get_ctfile_text(_course_config, race=True))
for _ in range(1, 4-(i%4)): # Complete cup if track are missing
ctfile.write(f' T T44; T44; 0x00; "_"; ""; "-"\n')
rctfile.write(f' T T44; T44; 0x00; "_"; ""; "-"\n')
ctfile.write(EMPTY_TRACK)
rctfile.write(EMPTY_TRACK)
except:
self.log_error()

View file

@ -19,6 +19,8 @@ region_ID = {
"E": "USA"
}
EMPTY_TRACK = ' T T44; T44; 0x00; "_"; ""; "-"\n'
with open("./translation.json", encoding="utf-8") as f:
translation_dict = json.load(f)

View file

@ -84,7 +84,7 @@ def patch_track(self, tracks, total_track="?"):
"./file/Track/%N.szs", "--szs", "--overwrite", "--autoadd-path",
"./file/auto-add/"], creationflags=CREATE_NO_WINDOW, stderr=subprocess.PIPE)
else:
messagebox.showerror(self.translate("Erreor"),
messagebox.showerror(self.translate("Error"),
self.translate("Can't convert track.\nEnable track download and retry."))
return -1
elif self.boolvar_del_track_after_conv.get(): os.remove(get_track_wu8(track_file))

View file

@ -61,7 +61,11 @@
"Can't convert track.\nEnable track download and retry.": "Impossible de convertir la course.\nRéactiver le téléchargement des courses et réessayer.",
"Too much track had a conversion issue.": "Trop de course ont eu une erreur de conversion.",
"La course": "The track",
"do not have been properly converted.": "n'a pas été correctement converti."
"do not have been properly converted.": "n'a pas été correctement converti.",
"Track selection": "Sélection de course",
"Select": "Sélectionner",
"star": "étoile",
"stars": "étoiles"
},
"ge": {
"Random: All tracks": "Zufällig: Alle Spuren",