diff options
-rw-r--r-- | client/server.gd | 29 | ||||
-rw-r--r-- | client/settings.gd | 12 | ||||
-rw-r--r-- | locale/en.ini | 11 | ||||
-rw-r--r-- | server/registry/src/main.rs | 2 |
4 files changed, 34 insertions, 20 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 diff --git a/locale/en.ini b/locale/en.ini index 749b887a..b55152d5 100644 --- a/locale/en.ini +++ b/locale/en.ini @@ -137,10 +137,13 @@ c.settings.input.zoom_in=Zoom in c.settings.input.zoom_out_discrete=Zoom out (discrete) c.settings.input.zoom_out=Zoom out c.settings.input=Controls -c.settings.other.server_binary.placeholder=Enter path -c.settings.other.server_binary=Server binary (leave empty to search PATH) -c.settings.other.server_data=Server data directory (leave empty to auto-detect) -c.settings.other=Other +c.settings.server.binary_path=Server binary path +c.settings.server.data_path=Server data directory path +c.settings.server.mdns=Local server discoverability +c.settings.server.name=Server display name +c.settings.server.register=Submit for public listing (requires port forwarding) +c.settings.server.upnp=Automatic port forwarding (requires UPnP) +c.settings.server=Server c.settings.ui.language.system=System default c.settings.ui.language=Language c.settings.ui.scale_factor=UI scale factor diff --git a/server/registry/src/main.rs b/server/registry/src/main.rs index 87c0bbe1..5bb7a0a3 100644 --- a/server/registry/src/main.rs +++ b/server/registry/src/main.rs @@ -96,7 +96,7 @@ impl Registry { let mut interval = interval(Duration::from_secs( var("UPDATE_INTERVAL") .map(|e| e.parse::<u64>().unwrap()) - .unwrap_or(60), + .unwrap_or(10), )); loop { interval.tick().await; |