diff options
Diffstat (limited to 'client/server.gd')
-rw-r--r-- | client/server.gd | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/client/server.gd b/client/server.gd index 972e1f2d..b0ab5188 100644 --- a/client/server.gd +++ b/client/server.gd @@ -1,3 +1,19 @@ +# Undercooked - a game about cooking +# Copyright 2024 metamuffin +# Copyright 2024 nokoe +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# class_name GameServer extends Node @@ -22,9 +38,11 @@ func _ready(): thread = Thread.new() thread.start(_test_server) +func test(): + pass func start(): - if state != State.STOPPED and state != State.FAILED: + if state != State.STOPPED and state != State.FAILED: push_error("server cant be started") return state = State.STARTING @@ -39,11 +57,17 @@ func stop(): func _test_server(): var output = [] - thread_result = OS.execute("undercooked-server", ["-v"], output, true, false) + thread_result = OS.execute(get_server_path(), ["-v"], output, true, false) sem.post() func _server_exec(): - thread_result = OS.create_process("undercooked-server", [], false) + var args = [] + var data_path = get_server_data() + if data_path != null: + args.push_back("--data-dir") + args.push_back(data_path) + thread_result = OS.create_process(get_server_path(), args, false) + print(get_server_path(), args) if thread_result >= 0: var ok = false while not ok: @@ -59,6 +83,20 @@ func _server_exec(): break sem.post() +func get_server_path() -> String: + var path: String = Global.settings["server_binary"]["value"] + if path != "": + return path + else: + return "undercooked-server" + +func get_server_data(): + var path: String = Global.settings["server_data"]["value"] + if path != "": + return path + else: + return null + func _process(_delta): match state: State.TESTING: @@ -70,7 +108,7 @@ func _process(_delta): thread = null State.STARTING: if sem.try_wait(): - if thread_result >= 0: + if thread_result >= 0: state = State.RUNNING pid = thread_result print("Server: Started pid=", thread_result) |