aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-09-22 00:05:39 +0200
committermetamuffin <metamuffin@disroot.org>2024-09-22 00:05:47 +0200
commit7a1bd351b42e69b225e0938f232b36be2a23470c (patch)
treeb3db6cff289fe1b20746fe72d6025a181e25a9c7 /client
parent007cd84766a196d69bbfe6412d6eeab507861119 (diff)
downloadhurrycurry-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.gd29
-rw-r--r--client/settings.gd12
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