Core: remove game-specific arguments from Generate (#971)
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
This commit is contained in:
parent
45fb735320
commit
4a2a184db1
11
Generate.py
11
Generate.py
|
@ -63,7 +63,7 @@ class PlandoSettings(enum.IntFlag):
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
if self.value:
|
if self.value:
|
||||||
return ", ".join((flag.name for flag in PlandoSettings if self.value & flag.value))
|
return ", ".join(flag.name for flag in PlandoSettings if self.value & flag.value)
|
||||||
return "Off"
|
return "Off"
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,11 +84,6 @@ def mystery_argparse():
|
||||||
parser.add_argument('--seed', help='Define seed number to generate.', type=int)
|
parser.add_argument('--seed', help='Define seed number to generate.', type=int)
|
||||||
parser.add_argument('--multi', default=defaults["players"], type=lambda value: max(int(value), 1))
|
parser.add_argument('--multi', default=defaults["players"], type=lambda value: max(int(value), 1))
|
||||||
parser.add_argument('--spoiler', type=int, default=defaults["spoiler"])
|
parser.add_argument('--spoiler', type=int, default=defaults["spoiler"])
|
||||||
parser.add_argument('--lttp_rom', default=options["lttp_options"]["rom_file"],
|
|
||||||
help="Path to the 1.0 JP LttP Baserom.") # absolute, relative to cwd or relative to app path
|
|
||||||
parser.add_argument('--sm_rom', default=options["sm_options"]["rom_file"],
|
|
||||||
help="Path to the 1.0 JP SM Baserom.")
|
|
||||||
parser.add_argument('--enemizercli', default=resolve_path(defaults["enemizer_path"], local_path))
|
|
||||||
parser.add_argument('--outputpath', default=resolve_path(options["general_options"]["output_path"], user_path),
|
parser.add_argument('--outputpath', default=resolve_path(options["general_options"]["output_path"], user_path),
|
||||||
help="Path to output folder. Absolute or relative to cwd.") # absolute or relative to cwd
|
help="Path to output folder. Absolute or relative to cwd.") # absolute or relative to cwd
|
||||||
parser.add_argument('--race', action='store_true', default=defaults["race"])
|
parser.add_argument('--race', action='store_true', default=defaults["race"])
|
||||||
|
@ -183,10 +178,6 @@ def main(args=None, callback=ERmain):
|
||||||
|
|
||||||
Utils.init_logging(f"Generate_{seed}", loglevel=args.log_level)
|
Utils.init_logging(f"Generate_{seed}", loglevel=args.log_level)
|
||||||
|
|
||||||
erargs.lttp_rom = args.lttp_rom
|
|
||||||
erargs.sm_rom = args.sm_rom
|
|
||||||
erargs.enemizercli = args.enemizercli
|
|
||||||
|
|
||||||
settings_cache: Dict[str, Tuple[argparse.Namespace, ...]] = \
|
settings_cache: Dict[str, Tuple[argparse.Namespace, ...]] = \
|
||||||
{fname: (tuple(roll_settings(yaml, args.plando) for yaml in yamls) if args.samesettings else None)
|
{fname: (tuple(roll_settings(yaml, args.plando) for yaml in yamls) if args.samesettings else None)
|
||||||
for fname, yamls in weights_cache.items()}
|
for fname, yamls in weights_cache.items()}
|
||||||
|
|
1
Main.py
1
Main.py
|
@ -70,7 +70,6 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No
|
||||||
world.required_medallions = args.required_medallions.copy()
|
world.required_medallions = args.required_medallions.copy()
|
||||||
world.game = args.game.copy()
|
world.game = args.game.copy()
|
||||||
world.player_name = args.name.copy()
|
world.player_name = args.name.copy()
|
||||||
world.enemizer = args.enemizercli
|
|
||||||
world.sprite = args.sprite.copy()
|
world.sprite = args.sprite.copy()
|
||||||
world.glitch_triforce = args.glitch_triforce # This is enabled/disabled globally, no per player option.
|
world.glitch_triforce = args.glitch_triforce # This is enabled/disabled globally, no per player option.
|
||||||
|
|
||||||
|
|
|
@ -212,9 +212,7 @@ def parse_arguments(argv, no_defaults=False):
|
||||||
Alternatively, can be a ALttP Rom patched with a Link
|
Alternatively, can be a ALttP Rom patched with a Link
|
||||||
sprite that will be extracted.
|
sprite that will be extracted.
|
||||||
''')
|
''')
|
||||||
parser.add_argument('--gui', help='Launch the GUI', action='store_true')
|
|
||||||
|
|
||||||
parser.add_argument('--enemizercli', default=defval('EnemizerCLI/EnemizerCLI.Core'))
|
|
||||||
parser.add_argument('--shufflebosses', default=defval('none'), choices=['none', 'basic', 'normal', 'chaos',
|
parser.add_argument('--shufflebosses', default=defval('none'), choices=['none', 'basic', 'normal', 'chaos',
|
||||||
"singularity"])
|
"singularity"])
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import random
|
||||||
import threading
|
import threading
|
||||||
import typing
|
import typing
|
||||||
|
|
||||||
|
import Utils
|
||||||
from BaseClasses import Item, CollectionState, Tutorial
|
from BaseClasses import Item, CollectionState, Tutorial
|
||||||
from .Dungeons import create_dungeons
|
from .Dungeons import create_dungeons
|
||||||
from .EntranceShuffle import link_entrances, link_inverted_entrances, plando_connect
|
from .EntranceShuffle import link_entrances, link_inverted_entrances, plando_connect
|
||||||
|
@ -136,6 +137,10 @@ class ALTTPWorld(World):
|
||||||
|
|
||||||
create_items = generate_itempool
|
create_items = generate_itempool
|
||||||
|
|
||||||
|
enemizer_path: str = Utils.get_options()["generator"]["enemizer_path"] \
|
||||||
|
if os.path.isabs(Utils.get_options()["generator"]["enemizer_path"]) \
|
||||||
|
else Utils.local_path(Utils.get_options()["generator"]["enemizer_path"])
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.dungeon_local_item_names = set()
|
self.dungeon_local_item_names = set()
|
||||||
self.dungeon_specific_item_names = set()
|
self.dungeon_specific_item_names = set()
|
||||||
|
@ -150,12 +155,12 @@ class ALTTPWorld(World):
|
||||||
raise FileNotFoundError(rom_file)
|
raise FileNotFoundError(rom_file)
|
||||||
|
|
||||||
def generate_early(self):
|
def generate_early(self):
|
||||||
|
if self.use_enemizer():
|
||||||
|
check_enemizer(self.enemizer_path)
|
||||||
|
|
||||||
player = self.player
|
player = self.player
|
||||||
world = self.world
|
world = self.world
|
||||||
|
|
||||||
if self.use_enemizer():
|
|
||||||
check_enemizer(world.enemizer)
|
|
||||||
|
|
||||||
# system for sharing ER layouts
|
# system for sharing ER layouts
|
||||||
self.er_seed = str(world.random.randint(0, 2 ** 64))
|
self.er_seed = str(world.random.randint(0, 2 ** 64))
|
||||||
|
|
||||||
|
@ -360,7 +365,7 @@ class ALTTPWorld(World):
|
||||||
patch_rom(world, rom, player, use_enemizer)
|
patch_rom(world, rom, player, use_enemizer)
|
||||||
|
|
||||||
if use_enemizer:
|
if use_enemizer:
|
||||||
patch_enemizer(world, player, rom, world.enemizer, output_directory)
|
patch_enemizer(world, player, rom, self.enemizer_path, output_directory)
|
||||||
|
|
||||||
if world.is_race:
|
if world.is_race:
|
||||||
patch_race_rom(rom, world, player)
|
patch_race_rom(rom, world, player)
|
||||||
|
|
Loading…
Reference in New Issue