add functionality for async generation to MultiMystery.py
This commit is contained in:
parent
1a32d45474
commit
27971ee6a9
|
@ -46,6 +46,7 @@ if __name__ == "__main__":
|
||||||
output_path = options["general_options"]["output_path"]
|
output_path = options["general_options"]["output_path"]
|
||||||
enemizer_path = multi_mystery_options["enemizer_path"]
|
enemizer_path = multi_mystery_options["enemizer_path"]
|
||||||
player_files_path = multi_mystery_options["player_files_path"]
|
player_files_path = multi_mystery_options["player_files_path"]
|
||||||
|
target_player_count = multi_mystery_options.get("players", 0)
|
||||||
race = multi_mystery_options["race"]
|
race = multi_mystery_options["race"]
|
||||||
create_spoiler = multi_mystery_options["create_spoiler"]
|
create_spoiler = multi_mystery_options["create_spoiler"]
|
||||||
zip_roms = multi_mystery_options["zip_roms"]
|
zip_roms = multi_mystery_options["zip_roms"]
|
||||||
|
@ -56,6 +57,7 @@ if __name__ == "__main__":
|
||||||
#zip_password = multi_mystery_options["zip_password"] not at this time
|
#zip_password = multi_mystery_options["zip_password"] not at this time
|
||||||
player_name = multi_mystery_options["player_name"]
|
player_name = multi_mystery_options["player_name"]
|
||||||
meta_file_path = multi_mystery_options["meta_file_path"]
|
meta_file_path = multi_mystery_options["meta_file_path"]
|
||||||
|
weights_file_path = multi_mystery_options.get("weights_file_path", "weights.yaml")
|
||||||
teams = multi_mystery_options["teams"]
|
teams = multi_mystery_options["teams"]
|
||||||
rom_file = options["general_options"]["rom_file"]
|
rom_file = options["general_options"]["rom_file"]
|
||||||
host = options["server_options"]["host"]
|
host = options["server_options"]["host"]
|
||||||
|
@ -72,14 +74,9 @@ if __name__ == "__main__":
|
||||||
os.makedirs(player_files_path, exist_ok=True)
|
os.makedirs(player_files_path, exist_ok=True)
|
||||||
for file in os.listdir(player_files_path):
|
for file in os.listdir(player_files_path):
|
||||||
lfile = file.lower()
|
lfile = file.lower()
|
||||||
if lfile.endswith(".yaml") and lfile != meta_file_path.lower():
|
if lfile.endswith(".yaml") and lfile != meta_file_path.lower() and lfile != weights_file_path.lower():
|
||||||
player_files.append(file)
|
player_files.append(file)
|
||||||
print(f"Found player's file {file}.")
|
print(f"Found player's file {file}.")
|
||||||
player_count = len(player_files)
|
|
||||||
if player_count == 0:
|
|
||||||
feedback(f"No player files found. Please put them in a {player_files_path} folder.")
|
|
||||||
else:
|
|
||||||
print(player_count, "Players found.")
|
|
||||||
|
|
||||||
player_string = ""
|
player_string = ""
|
||||||
for i, file in enumerate(player_files, 1):
|
for i, file in enumerate(player_files, 1):
|
||||||
|
@ -93,7 +90,20 @@ if __name__ == "__main__":
|
||||||
else:
|
else:
|
||||||
basemysterycommand = f"py -{py_version} Mystery.py" # source
|
basemysterycommand = f"py -{py_version} Mystery.py" # source
|
||||||
|
|
||||||
command = f"{basemysterycommand} --multi {len(player_files)} {player_string} " \
|
|
||||||
|
weights_file_path = os.path.join(player_files_path, weights_file_path)
|
||||||
|
if os.path.exists(weights_file_path):
|
||||||
|
target_player_count = max(len(player_files), target_player_count)
|
||||||
|
else:
|
||||||
|
target_player_count = len(player_files)
|
||||||
|
|
||||||
|
|
||||||
|
if target_player_count == 0:
|
||||||
|
feedback(f"No player files found. Please put them in a {player_files_path} folder.")
|
||||||
|
else:
|
||||||
|
print(target_player_count, "Players found.")
|
||||||
|
|
||||||
|
command = f"{basemysterycommand} --multi {target_player_count} {player_string} " \
|
||||||
f"--rom \"{rom_file}\" --enemizercli \"{enemizer_path}\" " \
|
f"--rom \"{rom_file}\" --enemizercli \"{enemizer_path}\" " \
|
||||||
f"--outputpath \"{output_path}\" --teams {teams}"
|
f"--outputpath \"{output_path}\" --teams {teams}"
|
||||||
|
|
||||||
|
@ -107,6 +117,8 @@ if __name__ == "__main__":
|
||||||
command += " --race"
|
command += " --race"
|
||||||
if os.path.exists(os.path.join(player_files_path, meta_file_path)):
|
if os.path.exists(os.path.join(player_files_path, meta_file_path)):
|
||||||
command += f" --meta {os.path.join(player_files_path, meta_file_path)}"
|
command += f" --meta {os.path.join(player_files_path, meta_file_path)}"
|
||||||
|
if os.path.exists(weights_file_path):
|
||||||
|
command += f" --weights {weights_file_path}"
|
||||||
|
|
||||||
print(command)
|
print(command)
|
||||||
import time
|
import time
|
||||||
|
|
|
@ -61,6 +61,11 @@ multi_mystery_options:
|
||||||
enemizer_path: "EnemizerCLI/EnemizerCLI.Core.exe"
|
enemizer_path: "EnemizerCLI/EnemizerCLI.Core.exe"
|
||||||
# Folder from which the player yaml files are pulled from
|
# Folder from which the player yaml files are pulled from
|
||||||
player_files_path: "Players"
|
player_files_path: "Players"
|
||||||
|
#amount of players, 0 to infer from player files
|
||||||
|
players: 0
|
||||||
|
# general weights file, within the stated player_files_path location
|
||||||
|
# gets used if players is higher than the amount of per-player files found to fill remaining slots
|
||||||
|
weights_file_path: "weights.yaml"
|
||||||
# Meta file name, within the stated player_files_path location
|
# Meta file name, within the stated player_files_path location
|
||||||
meta_file_path: "meta.yaml"
|
meta_file_path: "meta.yaml"
|
||||||
# Automatically launches {player_name}.yaml's ROM file using the OS's default program once generation completes. (likely your emulator)
|
# Automatically launches {player_name}.yaml's ROM file using the OS's default program once generation completes. (likely your emulator)
|
||||||
|
@ -94,5 +99,5 @@ multi_mystery_options:
|
||||||
# 2 -> 7z is recommended for roms. All of them get the job done.
|
# 2 -> 7z is recommended for roms. All of them get the job done.
|
||||||
# 3 -> bz2
|
# 3 -> bz2
|
||||||
zip_format: 1
|
zip_format: 1
|
||||||
# Create roms flagged as race roms
|
# Create encrypted race roms
|
||||||
race: 0
|
race: 0
|
||||||
|
|
Loading…
Reference in New Issue