mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-07 05:08:23 +02:00
merged OriginalTrack and Slot to avoid confusion with the Track module
This commit is contained in:
parent
49c8353252
commit
b67517dc59
6 changed files with 48 additions and 143 deletions
|
@ -81,7 +81,6 @@
|
||||||
"CONVERTING_TO_GAME_FILE": "Converting to game file",
|
"CONVERTING_TO_GAME_FILE": "Converting to game file",
|
||||||
"CANNOT_FIND_COLOR": "Can't find color",
|
"CANNOT_FIND_COLOR": "Can't find color",
|
||||||
"NORMALIZING_TRACKS": "Normalizing tracks",
|
"NORMALIZING_TRACKS": "Normalizing tracks",
|
||||||
"CANNOT_FIND_ORIGINAL_TRACK": "Can't find original track",
|
|
||||||
"INVALID_MACRO": "Invalid macro",
|
"INVALID_MACRO": "Invalid macro",
|
||||||
"INVALID_AST_TYPE": "Invalid ast type",
|
"INVALID_AST_TYPE": "Invalid ast type",
|
||||||
"MAGIC_ATTRIBUTE_ARE_FORBIDDEN": "Magic attribute are forbidden",
|
"MAGIC_ATTRIBUTE_ARE_FORBIDDEN": "Magic attribute are forbidden",
|
||||||
|
|
|
@ -82,7 +82,6 @@
|
||||||
"CONVERTING_TO_GAME_FILE": "Conversion en fichier de jeu",
|
"CONVERTING_TO_GAME_FILE": "Conversion en fichier de jeu",
|
||||||
"CANNOT_FIND_COLOR": "Impossible de trouver la couleur",
|
"CANNOT_FIND_COLOR": "Impossible de trouver la couleur",
|
||||||
"NORMALIZING_TRACKS": "Normalisation des courses",
|
"NORMALIZING_TRACKS": "Normalisation des courses",
|
||||||
"CANNOT_FIND_ORIGINAL_TRACK": "Impossible de trouver la course originale",
|
|
||||||
"INVALID_MACRO": "Macro invalide",
|
"INVALID_MACRO": "Macro invalide",
|
||||||
"INVALID_AST_TYPE": "Type d'Ast invalide",
|
"INVALID_AST_TYPE": "Type d'Ast invalide",
|
||||||
"MAGIC_ATTRIBUTE_ARE_FORBIDDEN": "Les attributs magique sont interdit",
|
"MAGIC_ATTRIBUTE_ARE_FORBIDDEN": "Les attributs magique sont interdit",
|
||||||
|
|
|
@ -6,7 +6,7 @@ import json
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from source import threaded
|
from source import threaded
|
||||||
from source.mkw import Tag
|
from source.mkw import Tag, Slot
|
||||||
from source.mkw.Cup import Cup
|
from source.mkw.Cup import Cup
|
||||||
from source.mkw.MKWColor import bmg_color_text, bmg_color_raw
|
from source.mkw.MKWColor import bmg_color_text, bmg_color_raw
|
||||||
from source.mkw.ModSettings import AbstractModSettings
|
from source.mkw.ModSettings import AbstractModSettings
|
||||||
|
@ -450,7 +450,7 @@ class ModConfig:
|
||||||
# if the track should use the default track instead in multiplayer,
|
# if the track should use the default track instead in multiplayer,
|
||||||
# copy the default track to the same file but with a _d at the end
|
# copy the default track to the same file but with a _d at the end
|
||||||
shutil.copy(
|
shutil.copy(
|
||||||
original_tracks_path / f"{OriginalTrack.get(slot=track.special).name}_d.szs",
|
original_tracks_path / f"{Slot.get(normal=track.special).track_name}_d.szs",
|
||||||
destination_path / f"{track_file.stem}_d.szs"
|
destination_path / f"{track_file.stem}_d.szs"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,95 +0,0 @@
|
||||||
from dataclasses import dataclass
|
|
||||||
|
|
||||||
from source.mkw import Slot
|
|
||||||
from source.translation import translate as _
|
|
||||||
|
|
||||||
|
|
||||||
class OriginalTrackNotFound(Exception):
|
|
||||||
def __init__(self, track_data: any):
|
|
||||||
super().__init__(_("CANNOT_FIND_ORIGINAL_TRACK", ' "', track_data, '" '))
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass(init=True, slots=True)
|
|
||||||
class OriginalTrack:
|
|
||||||
"""
|
|
||||||
An object representing one of the original track / arena of the game
|
|
||||||
"""
|
|
||||||
|
|
||||||
name: str
|
|
||||||
slot: Slot
|
|
||||||
|
|
||||||
def __post_init__(self):
|
|
||||||
if isinstance(self.slot, str): self.slot = Slot.get(normal=self.slot)
|
|
||||||
|
|
||||||
|
|
||||||
all_original_tracks: list[OriginalTrack] = [
|
|
||||||
OriginalTrack(name="beginner_course", slot=Slot.get(normal="T11")),
|
|
||||||
OriginalTrack(name="farm_course", slot="T12"),
|
|
||||||
OriginalTrack(name="kinoko_course", slot="T13"),
|
|
||||||
OriginalTrack(name="factory_course", slot="T14"),
|
|
||||||
|
|
||||||
OriginalTrack(name="castle_course", slot="T21"),
|
|
||||||
OriginalTrack(name="shopping_course", slot="T22"),
|
|
||||||
OriginalTrack(name="boardcross_course", slot="T23"),
|
|
||||||
OriginalTrack(name="truck_course", slot="T24"),
|
|
||||||
|
|
||||||
OriginalTrack(name="senior_course", slot="T31"),
|
|
||||||
OriginalTrack(name="water_course", slot="T32"),
|
|
||||||
OriginalTrack(name="treehouse_course", slot="T33"),
|
|
||||||
OriginalTrack(name="volcano_course", slot="T34"),
|
|
||||||
|
|
||||||
OriginalTrack(name="desert_course", slot="T41"),
|
|
||||||
OriginalTrack(name="ridgehighway_course", slot="T42"),
|
|
||||||
OriginalTrack(name="koopa_course", slot="T43"),
|
|
||||||
OriginalTrack(name="rainbow_course", slot="T44"),
|
|
||||||
|
|
||||||
# retro tracks
|
|
||||||
OriginalTrack(name="old_peach_gc", slot="T51"),
|
|
||||||
OriginalTrack(name="old_falls_ds", slot="T52"),
|
|
||||||
OriginalTrack(name="old_obake_sfc", slot="T53"),
|
|
||||||
OriginalTrack(name="old_mario_64", slot="T54"),
|
|
||||||
|
|
||||||
OriginalTrack(name="old_sherbet_64", slot="T61"),
|
|
||||||
OriginalTrack(name="old_heyho_gba", slot="T62"),
|
|
||||||
OriginalTrack(name="old_town_ds", slot="T63"),
|
|
||||||
OriginalTrack(name="old_waluigi_gc", slot="T64"),
|
|
||||||
|
|
||||||
OriginalTrack(name="old_desert_ds", slot="T71"),
|
|
||||||
OriginalTrack(name="old_koopa_gba", slot="T72"),
|
|
||||||
OriginalTrack(name="old_donkey_64", slot="T73"),
|
|
||||||
OriginalTrack(name="old_mario_gc", slot="T74"),
|
|
||||||
|
|
||||||
OriginalTrack(name="old_mario_sfc", slot="T81"),
|
|
||||||
OriginalTrack(name="old_garden_ds", slot="T82"),
|
|
||||||
OriginalTrack(name="old_donkey_gc", slot="T83"),
|
|
||||||
OriginalTrack(name="old_koopa_64", slot="T84"),
|
|
||||||
|
|
||||||
# wii arena
|
|
||||||
OriginalTrack(name="block_battle", slot="A11"),
|
|
||||||
OriginalTrack(name="venice_battle", slot="A12"),
|
|
||||||
OriginalTrack(name="skate_battle", slot="A13"),
|
|
||||||
OriginalTrack(name="casino_battle", slot="A14"),
|
|
||||||
OriginalTrack(name="sand_battle", slot="A15"),
|
|
||||||
|
|
||||||
# retro arena
|
|
||||||
OriginalTrack(name="old_battle4_sfc", slot="A21"),
|
|
||||||
OriginalTrack(name="old_battle3_gba", slot="A22"),
|
|
||||||
OriginalTrack(name="old_matenro_64", slot="A23"),
|
|
||||||
OriginalTrack(name="old_CookieLand_gc", slot="A24"),
|
|
||||||
OriginalTrack(name="old_House_ds", slot="A25"),
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def get(**track_datas) -> OriginalTrack:
|
|
||||||
"""
|
|
||||||
Get a original track object from keys and its value
|
|
||||||
:param track_datas: dictionary of track key and their value
|
|
||||||
:return: the corresponding original track
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
return next(filter(
|
|
||||||
lambda og_track: all(getattr(og_track, key) == value for key, value in track_datas.items()),
|
|
||||||
all_original_tracks
|
|
||||||
))
|
|
||||||
except StopIteration: raise OriginalTrackNotFound(track_datas)
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from source.translation import translate as _
|
||||||
|
|
||||||
|
|
||||||
class SlotNotFound(Exception):
|
class SlotNotFound(Exception):
|
||||||
|
@ -14,66 +15,67 @@ class Slot:
|
||||||
|
|
||||||
normal: str # T11, T12, ...
|
normal: str # T11, T12, ...
|
||||||
abbreviation: str # LC, MMM, ...
|
abbreviation: str # LC, MMM, ...
|
||||||
|
track_name: str # beginner_course, farm_course, ...
|
||||||
|
|
||||||
def __str__(self) -> str: return self.normal
|
def __str__(self) -> str: return self.normal
|
||||||
def __eq__(self, other) -> bool: return any(getattr(self, key) == other for key in self.__slots__)
|
def __eq__(self, other) -> bool: return any(getattr(self, key) == other for key in self.__slots__)
|
||||||
|
|
||||||
|
|
||||||
all_slots: list[Slot] = [
|
all_slots: list[Slot] = [
|
||||||
Slot(normal="T11", abbreviation="LC"),
|
Slot(normal="T11", abbreviation="LC", track_name="beginner_course"),
|
||||||
Slot(normal="T12", abbreviation="MMM"),
|
Slot(normal="T12", abbreviation="MMM", track_name="farm_course"),
|
||||||
Slot(normal="T13", abbreviation="MG"),
|
Slot(normal="T13", abbreviation="MG", track_name="kinoko_course"),
|
||||||
Slot(normal="T14", abbreviation="TF"),
|
Slot(normal="T14", abbreviation="TF", track_name="factory_course"),
|
||||||
|
|
||||||
Slot(normal="T21", abbreviation="MC"),
|
Slot(normal="T21", abbreviation="MC", track_name="castle_course"),
|
||||||
Slot(normal="T22", abbreviation="CM"),
|
Slot(normal="T22", abbreviation="CM", track_name="shopping_course"),
|
||||||
Slot(normal="T23", abbreviation="DKS"),
|
Slot(normal="T23", abbreviation="DKS", track_name="boardcross_course"),
|
||||||
Slot(normal="T24", abbreviation="WGM"),
|
Slot(normal="T24", abbreviation="WGM", track_name="truck_course"),
|
||||||
|
|
||||||
Slot(normal="T31", abbreviation="DC"),
|
Slot(normal="T31", abbreviation="DC", track_name="senior_course"),
|
||||||
Slot(normal="T32", abbreviation="KC"),
|
Slot(normal="T32", abbreviation="KC", track_name="water_course"),
|
||||||
Slot(normal="T33", abbreviation="MT"),
|
Slot(normal="T33", abbreviation="MT", track_name="treehouse_course"),
|
||||||
Slot(normal="T34", abbreviation="GV"),
|
Slot(normal="T34", abbreviation="GV", track_name="volcano_course"),
|
||||||
|
|
||||||
Slot(normal="T41", abbreviation="DDR"),
|
Slot(normal="T41", abbreviation="DDR", track_name="desert_course"),
|
||||||
Slot(normal="T42", abbreviation="MH"),
|
Slot(normal="T42", abbreviation="MH", track_name="ridgehighway_course"),
|
||||||
Slot(normal="T43", abbreviation="BC"),
|
Slot(normal="T43", abbreviation="BC", track_name="koopa_course"),
|
||||||
Slot(normal="T44", abbreviation="RR"),
|
Slot(normal="T44", abbreviation="RR", track_name="rainbow_course"),
|
||||||
|
|
||||||
# retro tracks
|
# retro tracks
|
||||||
Slot(normal="T51", abbreviation="gPB"),
|
Slot(normal="T51", abbreviation="gPB", track_name="old_peach_gc"),
|
||||||
Slot(normal="T52", abbreviation="dYF"),
|
Slot(normal="T52", abbreviation="dYF", track_name="old_falls_ds"),
|
||||||
Slot(normal="T53", abbreviation="sGV2"),
|
Slot(normal="T53", abbreviation="sGV2", track_name="old_obake_sfc"),
|
||||||
Slot(normal="T54", abbreviation="nMR"),
|
Slot(normal="T54", abbreviation="nMR", track_name="old_mario_64"),
|
||||||
|
|
||||||
Slot(normal="T61", abbreviation="nSL"),
|
Slot(normal="T61", abbreviation="nSL", track_name="old_sherbet_64"),
|
||||||
Slot(normal="T62", abbreviation="gSGB"),
|
Slot(normal="T62", abbreviation="gSGB", track_name="old_heyho_gba"),
|
||||||
Slot(normal="T63", abbreviation="dDS"),
|
Slot(normal="T63", abbreviation="dDS", track_name="old_town_ds"),
|
||||||
Slot(normal="T64", abbreviation="gWS"),
|
Slot(normal="T64", abbreviation="gWS", track_name="old_waluigi_gc"),
|
||||||
|
|
||||||
Slot(normal="T71", abbreviation="dDH"),
|
Slot(normal="T71", abbreviation="dDH", track_name="old_desert_ds"),
|
||||||
Slot(normal="T72", abbreviation="gBC3"),
|
Slot(normal="T72", abbreviation="gBC3", track_name="old_koopa_gba"),
|
||||||
Slot(normal="T73", abbreviation="nDKJP"),
|
Slot(normal="T73", abbreviation="nDKJP", track_name="old_donkey_64"),
|
||||||
Slot(normal="T74", abbreviation="gMC"),
|
Slot(normal="T74", abbreviation="gMC", track_name="old_mario_gc"),
|
||||||
|
|
||||||
Slot(normal="T81", abbreviation="sMC3"),
|
Slot(normal="T81", abbreviation="sMC3", track_name="old_mario_sfc"),
|
||||||
Slot(normal="T82", abbreviation="dPG"),
|
Slot(normal="T82", abbreviation="dPG", track_name="old_garden_ds"),
|
||||||
Slot(normal="T83", abbreviation="gDKM"),
|
Slot(normal="T83", abbreviation="gDKM", track_name="old_donkey_gc"),
|
||||||
Slot(normal="T84", abbreviation="nBC"),
|
Slot(normal="T84", abbreviation="nBC", track_name="old_koopa_64"),
|
||||||
|
|
||||||
# wii arena
|
# wii arena
|
||||||
Slot(normal="A11", abbreviation="aBP"),
|
Slot(normal="A11", abbreviation="aBP", track_name="block_battle"),
|
||||||
Slot(normal="A12", abbreviation="aDP"),
|
Slot(normal="A12", abbreviation="aDP", track_name="venice_battle"),
|
||||||
Slot(normal="A13", abbreviation="aFS"),
|
Slot(normal="A13", abbreviation="aFS", track_name="skate_battle"),
|
||||||
Slot(normal="A14", abbreviation="aCCW"),
|
Slot(normal="A14", abbreviation="aCCW", track_name="casino_battle"),
|
||||||
Slot(normal="A15", abbreviation="aTD"),
|
Slot(normal="A15", abbreviation="aTD", track_name="sand_battle"),
|
||||||
|
|
||||||
# retro arena
|
# retro arena
|
||||||
Slot(normal="A21", abbreviation="asBC4"),
|
Slot(normal="A21", abbreviation="asBC4", track_name="old_battle4_sfc"),
|
||||||
Slot(normal="A22", abbreviation="agBC3"),
|
Slot(normal="A22", abbreviation="agBC3", track_name="old_battle3_gba"),
|
||||||
Slot(normal="A23", abbreviation="anSS"),
|
Slot(normal="A23", abbreviation="anSS", track_name="old_matenro_64"),
|
||||||
Slot(normal="A24", abbreviation="agCL"),
|
Slot(normal="A24", abbreviation="agCL", track_name="old_CookieLand_gc"),
|
||||||
Slot(normal="A25", abbreviation="adTH"),
|
Slot(normal="A25", abbreviation="adTH", track_name="old_House_ds"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from source.mkw import OriginalTrack
|
from source.mkw import Slot
|
||||||
from source.wt import *
|
from source.wt import *
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ def bmg_ctfile(ctfile: "Path | str") -> str:
|
||||||
# this command will generate unwanted definition for the originals tracks / arena. Delete them if
|
# this command will generate unwanted definition for the originals tracks / arena. Delete them if
|
||||||
# they are not custom
|
# they are not custom
|
||||||
|
|
||||||
original_tracks_texts: list[str] = list(map(lambda og_track: og_track.name, OriginalTrack.all_original_tracks))
|
original_tracks_texts: list[str] = list(map(lambda slot: slot.track_name, Slot.all_slots))
|
||||||
|
|
||||||
def remove_unwanted_definition(match: re.Match) -> str:
|
def remove_unwanted_definition(match: re.Match) -> str:
|
||||||
def_id = int(match.group("id"), 16)
|
def_id = int(match.group("id"), 16)
|
||||||
|
|
Loading…
Reference in a new issue