launcher.gd 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. extends Node
  2. var currentversion = 00
  3. var status = 0
  4. var downloaded_bytes = 0
  5. var body_size = 0
  6. var dowload = true
  7. export var versionfile = 'https://git.galodev.net/galo/ghosthandupdate/raw/master/version.json'
  8. export var pckfile = 'https://download1645.mediafire.com/u9zz5bf2gvng/e8fuz27b4t5uvvq/GhostHand.pck'
  9. func _ready():
  10. if ResourceLoader.exists('user://patches/currentversion.tres'):
  11. var loader = load("user://patches/currentversion.tres")
  12. currentversion = loader.data[0]['version']
  13. print(currentversion)
  14. var directory = Directory.new()
  15. if directory.dir_exists("user://patches"):
  16. pass
  17. else:
  18. directory.make_dir("user://patches")
  19. $HTTPRequest2.request(versionfile)
  20. func dowloadupdate():
  21. print('dowloading patch')
  22. $HTTPRequest.set_download_file('res://GhostHand.pck')
  23. $HTTPRequest.request(pckfile)
  24. func _on_HTTPRequest_request_completed(result, response_code, headers, body):
  25. if response_code == 200:
  26. set_process(false)
  27. $Label.text = 'your dowload just finished'
  28. $Button.set_disabled(false)
  29. $ProgressBar.value = 100
  30. # ProjectSettings.load_resource_pack('user://patches/newpatch.pck')
  31. # get_tree().change_scene_to(load("res://Login/Client.tscn"))
  32. else:
  33. server_connect_fail()
  34. func server_connect_fail():
  35. $Label.text = 'server connection failure!'
  36. print('failed to connect to server')
  37. # if ResourceLoader.exists('user://patches/newpatch.pck'):
  38. # ProjectSettings.load_resource_pack('user://patches/newpatch.pck')
  39. # get_tree().change_scene_to(load("res://Login/Client.tscn"))
  40. func _on_HTTPRequest2_request_completed(result, response_code, headers, body):
  41. if response_code == 200:
  42. var data = JSON.parse(body.get_string_from_ascii())
  43. var dataprocess = data.result
  44. print(body.get_string_from_ascii())
  45. print(dataprocess)
  46. body_size = dataprocess['size']
  47. var dict = Directory.new()
  48. if dataprocess['version'] > currentversion:
  49. dowloadupdate()
  50. dowload = false
  51. var data2 = load("res://dataresource.gd").new()
  52. data2.data = [dataprocess]
  53. ResourceSaver.save('user://patches/currentversion.tres', data2)
  54. else:
  55. print('no version to dowload')
  56. $Label.text = 'you are on the most recent version!!!'
  57. $Button.set_disabled(false)
  58. # ProjectSettings.load_resource_pack('user://patches/newpatch.pck')
  59. # get_tree().change_scene_to(load("res://Client/Client.tscn"))
  60. else:
  61. server_connect_fail()
  62. $Label.text = 'server connection failure!'
  63. pass # Replace with function body.
  64. func force_update():
  65. dowloadupdate()
  66. dowload = false
  67. func _process(delta):
  68. status = $HTTPRequest.get_http_client_status()
  69. downloaded_bytes = $HTTPRequest.get_downloaded_bytes()
  70. if not dowload:
  71. $Label.text = 'dowloading '+str(downloaded_bytes/1024) +' kbs of '+ str(int(body_size)/1024) +' kbs'
  72. $ProgressBar.value = downloaded_bytes*100/body_size