Committed current work (Too many changes to count)
This commit is contained in:
		
							
								
								
									
										75
									
								
								Main_menu.gd
									
									
									
									
									
								
							
							
						
						
									
										75
									
								
								Main_menu.gd
									
									
									
									
									
								
							| @ -1,11 +1,78 @@ | ||||
| extends Control | ||||
|  | ||||
| onready var Version_menu = $Panel/Version_menu | ||||
| var newest_version | ||||
| var newest_version_data | ||||
| var newest_local_version = Versions.get_versions().max() | ||||
| var os_name | ||||
| var suffix | ||||
|  | ||||
| func _process(delta): | ||||
| 	if newest_version != null: | ||||
| 		newest_local_version = Versions.get_versions().max() | ||||
| 		if newest_local_version: | ||||
| 			if newest_version > newest_local_version: | ||||
| 				$Panel/Play_button.text = "Update" | ||||
| 			else: | ||||
| 				$Panel/Play_button.text = "Play" | ||||
|  | ||||
| func _ready():	 | ||||
| 	for version in Versions.get_versions(): | ||||
| 		$Panel/Version_menu.add_item(version) | ||||
| 	if OS.get_name() == "X11": | ||||
| 		os_name = "linux" | ||||
| 	elif OS.get_name() == "Windows": | ||||
| 		os_name = "windows" | ||||
|  | ||||
| 	var versions_request = HTTPRequest.new() | ||||
| 	add_child(versions_request) | ||||
| 	 | ||||
| 	versions_request.connect("request_completed", self, "_versions_request_completed") | ||||
| 	var error = versions_request.request("https://code.retroedge.tech/api/v1/repos/UltraFlare/UltraFlare/releases?draft=false&pre-release=true&limit=1") | ||||
|  | ||||
| func _versions_request_completed(result, response_code, headers, body): | ||||
| 	var data = JSON.parse(body.get_string_from_ascii()).result | ||||
| 	newest_version = data[0].tag_name | ||||
| 	newest_version_data = data[0] | ||||
|  | ||||
| func _download_request_completed(result, response_code, headers, body): | ||||
| 	#if OS.get_name() == "X11": | ||||
| 	var os_name = "linux" | ||||
| 	#elif OS.get_name() == "Windows": | ||||
| 	#	var os_name = "windows" | ||||
|  | ||||
| 	if os_name == "windows": | ||||
| 		var suffix = ".exe" | ||||
| 	else: | ||||
| 		var suffix = "" | ||||
| 	 | ||||
| 	print("Download complete") | ||||
| 	var dl_file = File.new() | ||||
| 	dl_file.open(OS.get_config_dir()+"/UltraFlare/versions/"+newest_version+"/UltraFlare-"+os_name+"-x86_64", 7) | ||||
| 	dl_file.store_buffer(body) | ||||
| 	dl_file.close() | ||||
|  | ||||
| func _on_Play_button_pressed(): | ||||
| 	var version = Version_menu.get_item_text(Version_menu.selected) | ||||
| 	print(Versions.get_versions()) | ||||
| 	if newest_version: | ||||
| 		var suffix = "" | ||||
| 		if os_name == "windows": | ||||
| 			suffix = ".exe" | ||||
| 		if newest_version > newest_local_version: | ||||
| 			var download = HTTPRequest.new() | ||||
| 			add_child(download) | ||||
| 			 | ||||
| 			download.connect("request_completed", self, "_download_request_completed") | ||||
| 			 | ||||
| 			var url | ||||
| 			 | ||||
| 			for asset in newest_version_data.assets: | ||||
| 				if asset.name == "UltraFlare-"+os_name+"-x86_64": | ||||
| 					url = asset.browser_download_url | ||||
| 			 | ||||
| 			var error = download.request(url) | ||||
| 			 | ||||
| 		else: | ||||
| 			var exit_code = OS.execute(OS.get_config_dir()+"/UltraFlare/versions/"+newest_local_version+"/UltraFlare-"+os_name+"-x86_64"+suffix, [], false) | ||||
| 			 | ||||
| 			if exit_code != -1: | ||||
| 				get_tree().quit() | ||||
| 			else: | ||||
| 				print("Running UltraFlare failed with code: "+exit_code) | ||||
|  | ||||
| @ -1,11 +1,10 @@ | ||||
| [gd_scene load_steps=11 format=2] | ||||
| [gd_scene load_steps=10 format=2] | ||||
|  | ||||
| [ext_resource path="res://textures/Title-Background.png" type="Texture" id=1] | ||||
| [ext_resource path="res://fonts/SPACEBAR.ttf" type="DynamicFontData" id=2] | ||||
| [ext_resource path="res://Main_menu.gd" type="Script" id=3] | ||||
| [ext_resource path="res://fonts/Title-font.tres" type="DynamicFont" id=4] | ||||
| [ext_resource path="res://themes/Base_theme.tres" type="Theme" id=5] | ||||
| [ext_resource path="res://fonts/retro_gaming.tres" type="DynamicFont" id=7] | ||||
|  | ||||
| [sub_resource type="Theme" id=1] | ||||
| default_font = ExtResource( 4 ) | ||||
| @ -61,14 +60,6 @@ margin_bottom = -24.0 | ||||
| theme = ExtResource( 5 ) | ||||
| custom_styles/panel = SubResource( 4 ) | ||||
|  | ||||
| [node name="Version_menu" type="OptionButton" parent="Panel"] | ||||
| margin_left = 304.0 | ||||
| margin_top = 64.0 | ||||
| margin_right = 432.0 | ||||
| margin_bottom = 91.0 | ||||
| theme = ExtResource( 5 ) | ||||
| custom_fonts/font = ExtResource( 7 ) | ||||
|  | ||||
| [node name="Play_button" type="Button" parent="Panel"] | ||||
| margin_left = 288.0 | ||||
| margin_top = 8.0 | ||||
|  | ||||
							
								
								
									
										16
									
								
								Versions.gd
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								Versions.gd
									
									
									
									
									
								
							| @ -1,7 +1,10 @@ | ||||
| extends Node | ||||
|  | ||||
| var versions_dir_path = OS.get_config_dir()+"/UltraFlare/versions/" | ||||
| var versions_dir_path = OS.get_config_dir()+"/UltraFlare/versions" | ||||
| var versions_dir = Directory.new() | ||||
| var executable = File.new() | ||||
| var os_name = "" | ||||
| var suffix = "" | ||||
|  | ||||
| func get_versions(): | ||||
| 	var versions = [] | ||||
| @ -10,15 +13,26 @@ func get_versions(): | ||||
| 	 | ||||
| 	var file_name = versions_dir.get_next() | ||||
| 	while file_name != "": | ||||
| 		if executable.file_exists(versions_dir_path+"/"+file_name+"/UltraFlare-"+os_name+"-x86_64"+suffix): | ||||
| 			versions.append(file_name) | ||||
| 		 | ||||
| 		file_name = versions_dir.get_next() | ||||
| 	 | ||||
| 	versions_dir.list_dir_end() | ||||
| 	#versions.sort() | ||||
| 	 | ||||
| 	return versions | ||||
|  | ||||
|  | ||||
| func _ready(): | ||||
| 	if OS.get_name() == "X11": | ||||
| 		os_name = "linux" | ||||
| 	elif OS.get_name() == "Windows": | ||||
| 		os_name = "windows" | ||||
|  | ||||
| 	if os_name == "windows": | ||||
| 		suffix = ".exe" | ||||
| 	 | ||||
| 	if not versions_dir.dir_exists(versions_dir_path): | ||||
| 		versions_dir.make_dir_recursive(versions_dir_path) | ||||
|  | ||||
|  | ||||
							
								
								
									
										0
									
								
								bin/placeholder.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								bin/placeholder.txt
									
									
									
									
									
										Normal file
									
								
							
		Reference in New Issue
	
	Block a user