From 4e674e0380ec24c1a9ee52c476930861b0861b0e Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 11 Jan 2022 17:36:33 -0500 Subject: [PATCH] [WebHost] weighted-settings: Add items-list, locations-list, and custom-list to JSON config file --- WebHostLib/options.py | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/WebHostLib/options.py b/WebHostLib/options.py index 5866b638..55a61fa8 100644 --- a/WebHostLib/options.py +++ b/WebHostLib/options.py @@ -63,7 +63,10 @@ def create(): game_options = {} for option_name, option in all_options.items(): - if option.options: + if option_name in handled_in_js: + pass + + elif option.options: game_options[option_name] = this_option = { "type": "select", "displayName": option.displayname if hasattr(option, "displayname") else option_name, @@ -95,8 +98,30 @@ def create(): "min": option.range_start, "max": option.range_end, } - elif option_name in handled_in_js: - pass + + elif getattr(option, "verify_item_name", False): + game_options[option_name] = { + "type": "items-list", + "displayName": option.displayname if hasattr(option, "displayname") else option_name, + "description": option.__doc__ if option.__doc__ else "Please document me!", + } + + elif getattr(option, "verify_location_name", False): + game_options[option_name] = { + "type": "locations-list", + "displayName": option.displayname if hasattr(option, "displayname") else option_name, + "description": option.__doc__ if option.__doc__ else "Please document me!", + } + + elif hasattr(option, "valid_keys"): + if option.valid_keys: + game_options[option_name] = { + "type": "custom-list", + "displayName": option.displayname if hasattr(option, "displayname") else option_name, + "description": option.__doc__ if option.__doc__ else "Please document me!", + "options": list(option.valid_keys), + } + else: logging.debug(f"{option} not exported to Web Settings.")