123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- 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
|