Skip to content

Commit 23d7396

Browse files
committed
Use world's minimum AP version for templates if it's in its manifest
1 parent cda54e0 commit 23d7396

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

Options.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1787,7 +1787,7 @@ def yaml_dump_scalar(scalar) -> str:
17871787

17881788
res = template.render(
17891789
option_groups=option_groups,
1790-
__version__=__version__,
1790+
__version__=world.minimum_ap_version.as_simple_string() if world.minimum_ap_version else __version__,
17911791
game=game_name,
17921792
world_version=world.world_version.as_simple_string(),
17931793
yaml_dump=yaml_dump_scalar,

worlds/AutoWorld.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,8 @@ class World(metaclass=AutoWorldRegister):
347347
"""path it was loaded from"""
348348
world_version: ClassVar[Version] = Version(0, 0, 0)
349349
"""Optional world version loaded from archipelago.json"""
350+
minimum_ap_version: ClassVar[Optional[Version]] = None
351+
"""Optional minimum Archipelago version loaded from archipelago.json"""
350352

351353
def __init__(self, multiworld: "MultiWorld", player: int):
352354
assert multiworld is not None

worlds/__init__.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,10 @@ def load(self) -> bool:
117117
break
118118
game = manifest.get("game")
119119
if game in AutoWorldRegister.world_types:
120-
AutoWorldRegister.world_types[game].world_version = tuplize_version(manifest.get("world_version", "0.0.0"))
120+
world = AutoWorldRegister.world_types[game]
121+
world.world_version = tuplize_version(manifest.get("world_version", "0.0.0"))
122+
if "minimum_ap_version" in manifest.keys():
123+
world.minimum_ap_version = tuplize_version(manifest.get("minimum_ap_version"))
121124

122125
if apworlds:
123126
# encapsulation for namespace / gc purposes
@@ -188,8 +191,11 @@ def find_spec(
188191
apworld_source.load()
189192
if apworld.game in AutoWorldRegister.world_types:
190193
# world could fail to load at this point
194+
world = AutoWorldRegister.world_types[apworld.game]
191195
if apworld.world_version:
192-
AutoWorldRegister.world_types[apworld.game].world_version = apworld.world_version
196+
world.world_version = apworld.world_version
197+
if apworld.minimum_ap_version:
198+
world.minimum_ap_version = apworld.minimum_ap_version
193199
load_apworlds()
194200
del load_apworlds
195201

0 commit comments

Comments
 (0)