extends Node var currentversion = 00 var status = 0 var downloaded_bytes = 0 var body_size = 0 var dowload = true export var versionfile = 'https://galodev.net/download/version.txt' export var pckfile = 'https://galodev.net/download/Ghost%20Hand.pck' func _ready(): if ResourceLoader.exists('user://patches/currentversion.tres'): var loader = load("user://patches/currentversion.tres") currentversion = loader.data[0]['version'] print(currentversion) var directory = Directory.new() if directory.dir_exists("user://patches"): pass else: directory.make_dir("user://patches") $HTTPRequest2.request(versionfile) print('gen bat file') var save_game = File.new() save_game.open("res://run.bat", File.WRITE) save_game.store_line('pushd %~dp0') save_game.store_line('gamelauncher.exe --main-pack GhostHand.pck') save_game.store_line('popd') save_game.close() func dowloadupdate(): print('dowloading patch') $HTTPRequest.set_download_file('res://GhostHand.pck') $HTTPRequest.request(pckfile) func _on_HTTPRequest_request_completed(result, response_code, headers, body): if response_code == 200: set_process(false) $Label.text = 'your dowload just finished' $Button.set_disabled(false) $ProgressBar.value = 100 dowload = true else: server_connect_fail() func server_connect_fail(): $Label.text = 'server connection failure!' print('failed to connect to server') func _on_HTTPRequest2_request_completed(result, response_code, headers, body): if response_code == 200: var data = JSON.parse(body.get_string_from_ascii()) var dataprocess = data.result print(body.get_string_from_ascii()) print(dataprocess) body_size = dataprocess['size'] $RichTextLabel.text = dataprocess['changelog'] var dict = Directory.new() if dataprocess['version'] > currentversion: dowloadupdate() dowload = false var data2 = load("res://dataresource.gd").new() data2.data = [dataprocess] ResourceSaver.save('user://patches/currentversion.tres', data2) else: print('no version to dowload') $Label.text = 'you are on the most recent version!!!' $Button.set_disabled(false) else: server_connect_fail() $Label.text = 'server connection failure!' pass # Replace with function body. func force_update(): $Button.set_disabled(true) dowloadupdate() dowload = false var buffer = 0.0 var buffertext = '' var bufferdowloadspeeds = [] func _physics_process(delta): status = $HTTPRequest.get_http_client_status() downloaded_bytes = $HTTPRequest.get_downloaded_bytes() if not dowload: $Label.text = 'dowloading '+String.humanize_size(downloaded_bytes) +' of '+String.humanize_size(body_size) bufferdowloadspeeds.append(float(downloaded_bytes-buffer)) var sum = 0 if bufferdowloadspeeds.size() > 1000: bufferdowloadspeeds.remove(0) for i in bufferdowloadspeeds: sum += i buffertext = '\n' + ' at speed ' + String.humanize_size(sum/ bufferdowloadspeeds.size()/delta) + '/s' $Label.text += buffertext buffer = downloaded_bytes $ProgressBar.value = downloaded_bytes*100/body_size