mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-03 03:08:29 +02:00
implemented track_new_if to select track that should be selected by "Random: New tracks"
This commit is contained in:
parent
677fb35427
commit
ae5e9976e5
2 changed files with 16 additions and 12 deletions
|
@ -28,20 +28,21 @@ class ModConfig:
|
|||
__slots__ = ("name", "path", "nickname", "variant", "tags_prefix", "tags_suffix",
|
||||
"default_track", "_tracks", "version", "original_track_prefix", "swap_original_order",
|
||||
"keep_original_track", "enable_random_cup", "tags_cups", "track_file_template",
|
||||
"multiplayer_disable_if", "macros", "messages")
|
||||
"multiplayer_disable_if", "track_new_if", "macros", "messages", "settings")
|
||||
|
||||
def __init__(self, path: Path | str, name: str, nickname: str = None, version: str = None, variant: str = None,
|
||||
tags_prefix: dict[Tag, str] = None, tags_suffix: dict[Tag, str] = None,
|
||||
tags_cups: list[Tag] = None,
|
||||
default_track: "Track | TrackGroup" = None, tracks: list["Track | TrackGroup"] = None,
|
||||
original_track_prefix: bool = None, swap_original_order: bool = None,
|
||||
keep_original_track: bool = None, enable_random_cup: bool = None,
|
||||
tags_cups: list[Tag] = None, default_track: "Track | TrackGroup" = None,
|
||||
tracks: list["Track | TrackGroup"] = None, original_track_prefix: bool = None,
|
||||
swap_original_order: bool = None, keep_original_track: bool = None, enable_random_cup: bool = None,
|
||||
track_file_template: str = None, multiplayer_disable_if: str = None, macros: dict[str, str] = None,
|
||||
messages: dict[str, dict[str, str]] = None):
|
||||
track_new_if: str = None, messages: dict[str, dict[str, str]] = None,
|
||||
settings: dict[str, dict[str, str]] = None):
|
||||
|
||||
self.path = Path(path)
|
||||
self.macros: dict = macros if macros is not None else {}
|
||||
self.messages: dict = messages if messages is not None else {}
|
||||
self.settings: dict = settings if settings is not None else {}
|
||||
|
||||
self.name: str = name
|
||||
self.nickname: str = nickname if nickname is not None else name
|
||||
|
@ -57,6 +58,7 @@ class ModConfig:
|
|||
self.track_file_template: str = track_file_template \
|
||||
if track_file_template is not None else "{{ getattr(track, 'sha1', '_') }}"
|
||||
self.multiplayer_disable_if: str = multiplayer_disable_if if multiplayer_disable_if is not None else "False"
|
||||
self.track_new_if: str = track_new_if if track_new_if is not None else "True"
|
||||
|
||||
self.original_track_prefix: bool = original_track_prefix if original_track_prefix is not None else True
|
||||
self.swap_original_order: bool = swap_original_order if swap_original_order is not None else True
|
||||
|
|
|
@ -92,11 +92,13 @@ class Track:
|
|||
"""
|
||||
return self.get_tag_template(mod_config, mod_config.tags_suffix, default)
|
||||
|
||||
def is_highlight(self, mod_config: "ModConfig", default: any = None) -> bool:
|
||||
...
|
||||
|
||||
def is_new(self, mod_config: "ModConfig", default: any = None) -> bool:
|
||||
...
|
||||
def is_new(self, mod_config: "ModConfig") -> bool:
|
||||
"""
|
||||
Return if the track should be considered as new for random selection
|
||||
:param mod_config: mod configuration
|
||||
:return: is the track new
|
||||
"""
|
||||
return mod_config.safe_eval(mod_config.track_new_if, multiple=False, env={"track": self}) == "True"
|
||||
|
||||
def get_ctfile(self, mod_config: "ModConfig", template: str, hidden: bool = False) -> str:
|
||||
"""
|
||||
|
@ -110,7 +112,7 @@ class Track:
|
|||
|
||||
return (
|
||||
f'{"H" if hidden else "T"} {self.music}; ' # track type
|
||||
f'{self.special}; {(0x04 if hidden else 0) | (0x01 if self.is_new(mod_config, False) else 0):#04x}; ' # lecode flags
|
||||
f'{self.special}; {(0x04 if hidden else 0) | (0x01 if self.is_new(mod_config) else 0):#04x}; ' # lecode flags
|
||||
f'{file_name}; ' # filename
|
||||
f'{name}; ' # name of the track in the menu
|
||||
f'{file_name}\n' # unique identifier for each track
|
||||
|
|
Loading…
Reference in a new issue