extends HTTPRequest var is_update_payload = false var save_to var time = 0 func _ready(): connect("request_completed", self, "_request_completed") # Check if we need an update request("http://localhost:8080/vanagloria/version") set_process(true) func _request_completed(result, response_code, headers, body): if result != RESULT_SUCCESS: print("ERROR: COULD NOT UPDATE. RESULT #" + str(result)) completed() return if not is_update_payload: # Just checking if we need an update var server = JSON.parse(body.get_string_from_utf8()).result if server.version == util.version: completed() else: is_update_payload = true save_to = server.save_location request(server.download_path) else: var file = File.new() file.open(save_to, File.WRITE) file.store_buffer(body) file.close() restart() func _process(delta): time += delta var fake_progress = 1 - (0.8 / time) get_node("../ProgressBar").value = 100*fake_progress func restart(): # Pass on args to new instance, then quit var output = [] OS.execute("./vanagloria", [], false, output) # Mirror just runs godot again get_tree().quit() func completed(): get_tree().change_scene("res://scenes/lobby.tscn")