mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-22 23:17:26 -04:00
download_shared_lib
This commit is contained in:
parent
8fa99f746e
commit
985f252430
4 changed files with 28 additions and 8 deletions
|
@ -26,5 +26,26 @@ func download(url: String) -> String:
|
||||||
return save_path if err == OK else ""
|
return save_path if err == OK else ""
|
||||||
|
|
||||||
|
|
||||||
|
# Returns directory where file was downloaded. Keeps filename
|
||||||
|
func download_shared_lib(url: String, gate_url: String) -> String:
|
||||||
|
var dir = folder + "/" + gate_url.md5_text()
|
||||||
|
var save_path = dir + "/" + url.get_file()
|
||||||
|
if FileAccess.file_exists(save_path):
|
||||||
|
await get_tree().process_frame # TODO: remove workaround
|
||||||
|
return dir
|
||||||
|
DirAccess.make_dir_recursive_absolute(dir)
|
||||||
|
|
||||||
|
var http = HTTPRequest.new()
|
||||||
|
http.use_threads = true
|
||||||
|
add_child(http)
|
||||||
|
|
||||||
|
http.download_file = save_path
|
||||||
|
var err = http.request(url)
|
||||||
|
await http.request_completed
|
||||||
|
|
||||||
|
remove_child(http)
|
||||||
|
return dir if err == OK else ""
|
||||||
|
|
||||||
|
|
||||||
func _exit_tree() -> void:
|
func _exit_tree() -> void:
|
||||||
FileTools.remove_recursive(folder)
|
FileTools.remove_recursive(folder)
|
||||||
|
|
|
@ -15,13 +15,13 @@ func load_gate(config_url: String) -> void:
|
||||||
c_gate = ConfigGate.new(config_path, config_url)
|
c_gate = ConfigGate.new(config_path, config_url)
|
||||||
|
|
||||||
var image_path = await FileDownloader.download(c_gate.image_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_events.gate_info_loaded_emit(gate)
|
||||||
|
|
||||||
gate.resource_pack = await FileDownloader.download(c_gate.resource_pack_url)
|
gate.resource_pack = await FileDownloader.download(c_gate.resource_pack_url)
|
||||||
|
|
||||||
Debug.logclr("Downloading GDExtension libraries: " + str(c_gate.libraries), Color.DIM_GRAY)
|
Debug.logclr("Downloading GDExtension libraries: " + str(c_gate.libraries), Color.DIM_GRAY)
|
||||||
for lib in c_gate.libraries:
|
for lib in c_gate.libraries:
|
||||||
var lib_path = await FileDownloader.download(lib)
|
gate.shared_libs_dir = await FileDownloader.download_shared_lib(lib, config_url)
|
||||||
|
|
||||||
gate_events.gate_loaded_emit(gate)
|
gate_events.gate_loaded_emit(gate)
|
||||||
|
|
|
@ -17,9 +17,10 @@ func create_process(gate: Gate) -> void:
|
||||||
Debug.logerr("Sandbox executable not found at " + snbx_executable.path); return
|
Debug.logerr("Sandbox executable not found at " + snbx_executable.path); return
|
||||||
|
|
||||||
var pack_file = ProjectSettings.globalize_path(gate.resource_pack)
|
var pack_file = ProjectSettings.globalize_path(gate.resource_pack)
|
||||||
|
var shared_libs = ProjectSettings.globalize_path(gate.shared_libs_dir)
|
||||||
var args = [
|
var args = [
|
||||||
"--main-pack", pack_file,
|
"--main-pack", pack_file,
|
||||||
"--gdext-libs-dir", "/home/nordup/projects/godot/the-gates-folder/ServerFiles/exports/rust",
|
"--gdext-libs-dir", shared_libs,
|
||||||
"--resolution", "%dx%d" % [render_result.width, render_result.height]
|
"--resolution", "%dx%d" % [render_result.width, render_result.height]
|
||||||
]
|
]
|
||||||
Debug.logclr(snbx_executable.path + " " + " ".join(args), Color.DARK_VIOLET)
|
Debug.logclr(snbx_executable.path + " " + " ".join(args), Color.DARK_VIOLET)
|
||||||
|
|
|
@ -7,19 +7,17 @@ class_name Gate
|
||||||
@export var title: String
|
@export var title: String
|
||||||
@export var description: String
|
@export var description: String
|
||||||
@export_file("*.png", "*.jpg") var image: String
|
@export_file("*.png", "*.jpg") var image: String
|
||||||
var godot_config: String
|
|
||||||
var global_script_class: String
|
|
||||||
var resource_pack: String
|
var resource_pack: String
|
||||||
|
var shared_libs_dir: String
|
||||||
|
|
||||||
|
|
||||||
static func create(_url: String, _title: String, _description: String,
|
static func create(_url: String, _title: String, _description: String,
|
||||||
_image: String, _godot_config: String, _global_script_class: String, _resource_pack: String) -> Gate:
|
_image: String, _resource_pack: String, _shared_libs_dir: String) -> Gate:
|
||||||
var gate = Gate.new()
|
var gate = Gate.new()
|
||||||
gate.url = _url
|
gate.url = _url
|
||||||
gate.title = _title
|
gate.title = _title
|
||||||
gate.description = _description
|
gate.description = _description
|
||||||
gate.image = _image
|
gate.image = _image
|
||||||
gate.godot_config = _godot_config
|
|
||||||
gate.global_script_class = _global_script_class
|
|
||||||
gate.resource_pack = _resource_pack
|
gate.resource_pack = _resource_pack
|
||||||
|
gate.shared_libs_dir = _shared_libs_dir
|
||||||
return gate
|
return gate
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue