diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-22 00:05:39 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-22 00:05:47 +0200 |
commit | 7a1bd351b42e69b225e0938f232b36be2a23470c (patch) | |
tree | b3db6cff289fe1b20746fe72d6025a181e25a9c7 /client | |
parent | 007cd84766a196d69bbfe6412d6eeab507861119 (diff) | |
download | hurrycurry-7a1bd351b42e69b225e0938f232b36be2a23470c.tar hurrycurry-7a1bd351b42e69b225e0938f232b36be2a23470c.tar.bz2 hurrycurry-7a1bd351b42e69b225e0938f232b36be2a23470c.tar.zst |
add new server options as game settings
Diffstat (limited to 'client')
-rw-r--r-- | client/server.gd | 29 | ||||
-rw-r--r-- | client/settings.gd | 12 |
2 files changed, 26 insertions, 15 deletions
diff --git a/client/server.gd b/client/server.gd index b236fa2a..4378c02d 100644 --- a/client/server.gd +++ b/client/server.gd @@ -62,11 +62,7 @@ func _test_server(): sem.post() func _server_exec(): - var args = [] - var data_path = get_server_data() - if data_path != null: - args.push_back("--data-dir") - args.push_back(data_path) + var args = prepare_args() thread_result = OS.create_process(get_server_path(), args, false) if thread_result >= 0: var ok = false @@ -83,18 +79,29 @@ func _server_exec(): break sem.post() +func prepare_args(): + var args = [] + if Global.get_setting("server.data_path") != "": + args.push_back("--data-dir") + args.push_back(Global.get_setting("server.data_path")) + if Global.get_setting("server.name") != "": + args.push_back("--server-name") + args.push_back(Global.get_setting("server.name")) + if Global.get_setting("server.mdns"): + args.push_back("--mdns") + if Global.get_setting("server.upnp"): + args.push_back("--upnp") + if Global.get_setting("server.register"): + args.push_back("--register") + return args + func get_server_path() -> String: - var path: String = Global.get_setting("other.server_binary") + var path: String = Global.get_setting("server.binary_path") if path != "": return path else: return "hurrycurry-server" -func get_server_data(): - var path: String = Global.get_setting("other.server_data") - if path != "": return path - else: return null - func _process(_delta): match state: State.TESTING: diff --git a/client/settings.gd b/client/settings.gd index d217dd6c..269d58af 100644 --- a/client/settings.gd +++ b/client/settings.gd @@ -63,9 +63,13 @@ static func get_root(): SettingsCategory.new("input", InputManager.input_map_to_settings(InputManager.default_input_map) ), - SettingsCategory.new("other", [ - TextSetting.new("server_binary", ""), - TextSetting.new("server_data", ""), + SettingsCategory.new("server", [ + TextSetting.new("binary_path", ""), + TextSetting.new("data_path", ""), + TextSetting.new("name", "A Hurry Curry! Server"), + ToggleSetting.new("upnp", false), + ToggleSetting.new("mdns", false), + ToggleSetting.new("register", false), ]) ]) @@ -85,7 +89,7 @@ static func hook_changed_init(key: String, display: bool, callable: Callable): static func get_category_dict(prefix: String): var map = {} for k in Global.settings.keys(): - var kn = k.trim_prefix(prefix+".") + var kn = k.trim_prefix(prefix + ".") if kn == k: continue map[kn] = Global.get_setting(k) return map |