mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-03 11:18:26 +02:00
added ctfile creation for CT_Config, Cup, Track
This commit is contained in:
parent
af67bffafe
commit
42a96db471
3 changed files with 67 additions and 18 deletions
|
@ -37,7 +37,7 @@ class CT_Config:
|
|||
|
||||
def add_ordered_cup(self, cup: Cup):
|
||||
self.ordered_cups.append(cup)
|
||||
for track in cup.get_tracks():
|
||||
for track in cup.tracks:
|
||||
self.all_version.add(track.since_version)
|
||||
|
||||
def add_unordered_track(self, track: Track):
|
||||
|
@ -63,8 +63,29 @@ class CT_Config:
|
|||
def get_total_tracks_count(self):
|
||||
return (len(self.ordered_cups) * 4) + len(self.unordered_tracks)
|
||||
|
||||
def create_ctfile(self):
|
||||
pass
|
||||
def create_ctfile(self, directory="./file/"):
|
||||
with open(directory+"CTFILE.txt", "w", encoding="utf-8") as ctfile, \
|
||||
open(directory+"RCTFILE.txt", "w", encoding="utf-8") as rctfile:
|
||||
header = (
|
||||
"#CT-CODE\n"
|
||||
"[RACING-TRACK-LIST]\n"
|
||||
"%LE-FLAGS=1\n"
|
||||
"%WIIMM-CUP=1\n"
|
||||
"N N$SWAP | N$F_WII\n\n")
|
||||
ctfile.write(header); rctfile.write(header)
|
||||
|
||||
# generate cup for undefined track
|
||||
unordered_cups = []
|
||||
for i, track in enumerate(self.unordered_tracks):
|
||||
if i % 4 == 0:
|
||||
_actual_cup = Cup(name=f"TL{i // 4}")
|
||||
unordered_cups.append(_actual_cup)
|
||||
_actual_cup.tracks[i % 4] = track
|
||||
|
||||
# all cups
|
||||
for cup in self.ordered_cups + unordered_cups:
|
||||
ctfile.write(cup.get_ctfile_cup(race=False))
|
||||
rctfile.write(cup.get_ctfile_cup(race=True))
|
||||
|
||||
def get_cticon(self):
|
||||
"""
|
||||
|
@ -84,4 +105,4 @@ class CT_Config:
|
|||
cup_icon = get_cup_icon(i)
|
||||
ct_icon.paste(cup_icon, (0, i * CT_ICON_WIDTH))
|
||||
|
||||
return ct_icon #ct_icon.save("./file/ct_icons.tpl.png")
|
||||
return ct_icon # ct_icon.save("./file/ct_icons.tpl.png")
|
||||
|
|
|
@ -4,7 +4,7 @@ from .patch_ct_icon import get_cup_icon
|
|||
|
||||
|
||||
class Cup:
|
||||
def __init__(self, name: str, id: int,
|
||||
def __init__(self, name: str,
|
||||
track1: Track = EMPTY_TRACK,
|
||||
track2: Track = EMPTY_TRACK,
|
||||
track3: Track = EMPTY_TRACK,
|
||||
|
@ -12,15 +12,22 @@ class Cup:
|
|||
icon: Image = None):
|
||||
|
||||
self.name = name
|
||||
self.track1 = track1
|
||||
self.track2 = track2
|
||||
self.track3 = track3
|
||||
self.track4 = track4
|
||||
self.icon = icon if icon else create_cup_icon(id)
|
||||
self.id = id # cup number
|
||||
self.tracks = [track1, track2, track3, track4]
|
||||
self.icon = icon
|
||||
|
||||
def get_ctfile_cup(self):
|
||||
pass
|
||||
def get_ctfile_cup(self, race=False):
|
||||
"""
|
||||
:param race: is it a text used for Race_*.szs ?
|
||||
:return: ctfile definition for the cup
|
||||
"""
|
||||
ctfile_cup = f'\nC "{self.name}"\n'
|
||||
for track in self.tracks:
|
||||
ctfile_cup += track.get_ctfile_track(race)
|
||||
return ctfile_cup
|
||||
|
||||
def get_tracks(self):
|
||||
return self.track1, self.track2, self.track3, self.track4
|
||||
def get_icon(self, id: int):
|
||||
"""
|
||||
:param id: cup number
|
||||
:return: icon of the cup
|
||||
"""
|
||||
return self.icon if self.icon else get_cup_icon(id)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
from .definition import *
|
||||
import subprocess
|
||||
import source.wszst
|
||||
|
||||
|
||||
|
@ -43,7 +42,7 @@ class Track:
|
|||
|
||||
if self.score:
|
||||
if 0 < self.score <= 3:
|
||||
star_text = "★" * track["score"] + "☆" * (3 - track["score"])
|
||||
star_text = "★" * self.score + "☆" * (3 - self.score)
|
||||
star_text = trackname_color[star_text] + " "
|
||||
|
||||
if self.since_version == highlight_track_from_version:
|
||||
|
@ -67,7 +66,29 @@ class Track:
|
|||
if source.wszst.sha1(self.file_wu8) == self.sha1: return 0
|
||||
else: return -1
|
||||
|
||||
def get_ct_file_track(self): pass
|
||||
def get_ctfile_track(self, race=False):
|
||||
"""
|
||||
:param race: is it a text used for Race_*.szs ?
|
||||
:return: ctfile definition for the track
|
||||
"""
|
||||
ctfile_text = (
|
||||
f' T {self.music}; '
|
||||
f'{self.special}; '
|
||||
f'{"0x01" if self.new else "0x00"}; '
|
||||
)
|
||||
if not race:
|
||||
ctfile_text += (
|
||||
f'"{self.get_track_name()}"; ' # track path
|
||||
f'"{self.get_track_formatted_name()}"; ' # track text shown ig
|
||||
f'"-"\n') # sha1, useless for now.
|
||||
else:
|
||||
ctfile_text += (
|
||||
f'"-"; ' # track path, not used in Race_*.szs, save a bit of space
|
||||
f'"{self.get_track_formatted_name()}\\n{self.author}"; ' # only in race show author's name
|
||||
f'"-"\n' # sha1, useless for now.
|
||||
)
|
||||
|
||||
return ctfile_text
|
||||
|
||||
|
||||
EMPTY_TRACK = Track("_")
|
||||
|
|
Loading…
Reference in a new issue