From 1e6718b37dffc149a6ddfeba168ca721164a1db8 Mon Sep 17 00:00:00 2001 From: Nordup Date: Sun, 23 Apr 2023 03:12:34 +0300 Subject: [PATCH] create/kill world process --- .../the_gates/scripts/loading/gate_loader.gd | 3 +-- .../the_gates/scripts/loading/pack_loader.gd | 22 +++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/project/the_gates/scripts/loading/gate_loader.gd b/project/the_gates/scripts/loading/gate_loader.gd index 58e5442..58ee9b3 100644 --- a/project/the_gates/scripts/loading/gate_loader.gd +++ b/project/the_gates/scripts/loading/gate_loader.gd @@ -15,8 +15,7 @@ func load_gate(config_url: String) -> void: c_gate = ConfigGate.new(config_path, config_url) var image_path = await FileDownloader.download(c_gate.image_url) - var gate = Gate.create(config_url, c_gate.title, c_gate.description, - image_path, "", "", "") + var gate = Gate.create(config_url, c_gate.title, c_gate.description, image_path, "", "", "") gate_events.gate_info_loaded_emit(gate) gate.godot_config = await FileDownloader.download(c_gate.godot_config_url) diff --git a/project/the_gates/scripts/loading/pack_loader.gd b/project/the_gates/scripts/loading/pack_loader.gd index 8e46af0..57aba8a 100644 --- a/project/the_gates/scripts/loading/pack_loader.gd +++ b/project/the_gates/scripts/loading/pack_loader.gd @@ -8,9 +8,12 @@ var gate: Gate var c_g_script: ConfigGlobalScript var c_godot: ConfigGodot +var pid: int + func _ready() -> void: - gate_events.gate_loaded.connect(load_pack) +# gate_events.gate_loaded.connect(load_pack) + gate_events.gate_loaded.connect(create_process) func load_pack(_gate: Gate) -> void: @@ -40,5 +43,20 @@ func unload_pack() -> void: if c_g_script != null: c_g_script.unload_config() +func create_process(_gate: Gate) -> void: + gate = _gate + + var pack_file = ProjectSettings.globalize_path(gate.resource_pack) + var args = ["--main-pack", pack_file] + print("./godot " + " ".join(args)) + pid = OS.create_instance(args) + + +func kill_process() -> void: + if OS.is_process_running(pid): + OS.kill(pid) + + func _exit_tree() -> void: - unload_pack() +# unload_pack() + kill_process()