Added versions selector
This commit is contained in:
		| @ -1,4 +1,11 @@ | |||||||
| extends Control | extends Control | ||||||
|  |  | ||||||
|  | onready var Version_menu = $Panel/Version_menu | ||||||
|  |  | ||||||
| func _ready(): | func _ready(): | ||||||
| 	pass | 	for version in Versions.get_versions(): | ||||||
|  | 		$Panel/Version_menu.add_item(version) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | func _on_Play_button_pressed(): | ||||||
|  | 	var version = Version_menu.get_item_text(Version_menu.selected) | ||||||
|  | |||||||
| @ -1,10 +1,11 @@ | |||||||
| [gd_scene load_steps=9 format=2] | [gd_scene load_steps=11 format=2] | ||||||
|  |  | ||||||
| [ext_resource path="res://textures/Title-Background.png" type="Texture" id=1] | [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://fonts/SPACEBAR.ttf" type="DynamicFontData" id=2] | ||||||
| [ext_resource path="res://Main_menu.gd" type="Script" id=3] | [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://fonts/Title-font.tres" type="DynamicFont" id=4] | ||||||
| [ext_resource path="res://themes/Base_theme.tres" type="Theme" id=5] | [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] | [sub_resource type="Theme" id=1] | ||||||
| default_font = ExtResource( 4 ) | default_font = ExtResource( 4 ) | ||||||
| @ -13,7 +14,18 @@ default_font = ExtResource( 4 ) | |||||||
| size = 40 | size = 40 | ||||||
| font_data = ExtResource( 2 ) | font_data = ExtResource( 2 ) | ||||||
|  |  | ||||||
| [sub_resource type="DynamicFont" id=3] | [sub_resource type="StyleBoxFlat" id=4] | ||||||
|  | bg_color = Color( 0.0823529, 0.0745098, 0.117647, 1 ) | ||||||
|  | border_width_left = 10 | ||||||
|  | border_width_right = 5 | ||||||
|  | border_color = Color( 0.0823529, 0.0745098, 0.117647, 1 ) | ||||||
|  | corner_radius_top_left = 16 | ||||||
|  | corner_radius_top_right = 16 | ||||||
|  | corner_radius_bottom_right = 16 | ||||||
|  | corner_radius_bottom_left = 16 | ||||||
|  | corner_detail = 16 | ||||||
|  |  | ||||||
|  | [sub_resource type="DynamicFont" id=5] | ||||||
| size = 32 | size = 32 | ||||||
| font_data = ExtResource( 2 ) | font_data = ExtResource( 2 ) | ||||||
|  |  | ||||||
| @ -22,21 +34,12 @@ anchor_right = 1.0 | |||||||
| anchor_bottom = 1.0 | anchor_bottom = 1.0 | ||||||
| theme = ExtResource( 5 ) | theme = ExtResource( 5 ) | ||||||
| script = ExtResource( 3 ) | script = ExtResource( 3 ) | ||||||
| __meta__ = { |  | ||||||
| "_edit_lock_": true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| [node name="HTTPRequest" type="HTTPRequest" parent="."] |  | ||||||
|  |  | ||||||
| [node name="Background" type="TextureRect" parent="."] | [node name="Background" type="TextureRect" parent="."] | ||||||
| margin_right = 2000.0 | margin_right = 2000.0 | ||||||
| margin_bottom = 2000.0 | margin_bottom = 2000.0 | ||||||
| rect_scale = Vector2( 0.722402, 0.558973 ) | rect_scale = Vector2( 0.722402, 0.558973 ) | ||||||
| texture = ExtResource( 1 ) | texture = ExtResource( 1 ) | ||||||
| __meta__ = { |  | ||||||
| "_edit_group_": true, |  | ||||||
| "_edit_lock_": true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| [node name="Header" type="Label" parent="."] | [node name="Header" type="Label" parent="."] | ||||||
| anchor_right = 1.0 | anchor_right = 1.0 | ||||||
| @ -51,18 +54,28 @@ valign = 1 | |||||||
| anchor_top = 1.0 | anchor_top = 1.0 | ||||||
| anchor_right = 1.0 | anchor_right = 1.0 | ||||||
| anchor_bottom = 1.0 | anchor_bottom = 1.0 | ||||||
| margin_left = 40.0 | margin_left = 64.0 | ||||||
| margin_top = -112.0 | margin_top = -120.0 | ||||||
| margin_right = -40.0 | margin_right = -64.0 | ||||||
|  | margin_bottom = -24.0 | ||||||
| theme = ExtResource( 5 ) | 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"] | [node name="Play_button" type="Button" parent="Panel"] | ||||||
| margin_left = 344.0 | margin_left = 288.0 | ||||||
| margin_top = 24.0 | margin_top = 8.0 | ||||||
| margin_right = 610.0 | margin_right = 612.0 | ||||||
| margin_bottom = 96.0 | margin_bottom = 61.0 | ||||||
| rect_scale = Vector2( 0.962016, 0.91427 ) | rect_scale = Vector2( 0.962016, 0.91427 ) | ||||||
| custom_fonts/font = SubResource( 3 ) | custom_fonts/font = SubResource( 5 ) | ||||||
| text = "play" | text = "play" | ||||||
|  |  | ||||||
| [connection signal="request_completed" from="HTTPRequest" to="." method="_on_HTTPRequest_request_completed"] | [connection signal="pressed" from="Panel/Play_button" to="." method="_on_Play_button_pressed"] | ||||||
|  | |||||||
							
								
								
									
										72
									
								
								Store.gd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								Store.gd
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,72 @@ | |||||||
|  | # UltraFlare | ||||||
|  | #  Store.gd is a set of functions for storing settings/data using JSON files | ||||||
|  |  | ||||||
|  | extends Node | ||||||
|  |  | ||||||
|  | # Create a new file object for the config | ||||||
|  | var store_dir = Directory.new() | ||||||
|  | var store_file = File.new() | ||||||
|  |  | ||||||
|  | # Define a place to store places to look for the date | ||||||
|  | var store_paths = [OS.get_config_dir()+"/UltraFlare/"] | ||||||
|  | var store_path = null | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # When script/game is loaded, | ||||||
|  | func _ready(): | ||||||
|  | 	# For each path, | ||||||
|  | 	for path in store_paths: | ||||||
|  | 		# If the path exists, | ||||||
|  | 		if store_dir.dir_exists(path): | ||||||
|  | 			if store_file.file_exists(path): | ||||||
|  | 				# Set the data_path to that path | ||||||
|  | 				store_path = path | ||||||
|  | 				# Break out of the loop | ||||||
|  | 				break | ||||||
|  | 	 | ||||||
|  | 	# If the for loop finished with no results, | ||||||
|  | 	if store_path == null: | ||||||
|  | 		# Set the data path to the first entry in the data_paths array | ||||||
|  | 		store_path = store_paths[0] | ||||||
|  | 		store_dir.make_dir_recursive(store_path) | ||||||
|  | 		store_file.open(store_path+"/store.json", 3) | ||||||
|  |  | ||||||
|  | # get_store() | ||||||
|  | #  Used for getting all data in storage | ||||||
|  | func get_store(): | ||||||
|  | 	var data = JSONParseResult.new() | ||||||
|  | 	store_file.open(store_path+"/store.json", 1) | ||||||
|  | 	 | ||||||
|  | 	# Read the data from the stores | ||||||
|  | 	if store_file.get_as_text() != "": | ||||||
|  | 		data = JSON.parse(store_file.get_as_text()) | ||||||
|  | 	 | ||||||
|  | 	store_file.close() | ||||||
|  | 	 | ||||||
|  | 	# If no data was found, | ||||||
|  | 	if data.error or data == null or data.result == null: | ||||||
|  | 		return {} | ||||||
|  | 	# If data was found, | ||||||
|  | 	return data.result | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # store() | ||||||
|  | #  Used for storing data to the storage | ||||||
|  | func write_store(key, value): | ||||||
|  | 	# Read the data from the store | ||||||
|  | 	var data = get_store() | ||||||
|  | 	 | ||||||
|  | 	# If the value is null, | ||||||
|  | 	if value == null: | ||||||
|  | 		# Remove the key-value pair from the dictionary | ||||||
|  | 		data.erase(key) | ||||||
|  | 	else: | ||||||
|  | 		# Store the key-value pair | ||||||
|  | 		data[key] = value | ||||||
|  | 	 | ||||||
|  | 	store_file.open(store_path+"/store.json", 2) | ||||||
|  | 	 | ||||||
|  | 	# Translate the dictionary back to JSON and store it | ||||||
|  | 	store_file.store_string(JSON.print(data, " ")) | ||||||
|  | 	# Close the file | ||||||
|  | 	store_file.close() | ||||||
							
								
								
									
										24
									
								
								Versions.gd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								Versions.gd
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | |||||||
|  | extends Node | ||||||
|  |  | ||||||
|  | var versions_dir_path = OS.get_config_dir()+"/UltraFlare/versions/" | ||||||
|  | var versions_dir = Directory.new() | ||||||
|  |  | ||||||
|  | func get_versions(): | ||||||
|  | 	var versions = [] | ||||||
|  | 	versions_dir.open(versions_dir_path) | ||||||
|  | 	versions_dir.list_dir_begin(true) | ||||||
|  | 	 | ||||||
|  | 	var file_name = versions_dir.get_next() | ||||||
|  | 	while file_name != "": | ||||||
|  | 		versions.append(file_name) | ||||||
|  | 		file_name = versions_dir.get_next() | ||||||
|  | 	 | ||||||
|  | 	versions_dir.list_dir_end() | ||||||
|  | 	 | ||||||
|  | 	return versions | ||||||
|  |  | ||||||
|  |  | ||||||
|  | func _ready(): | ||||||
|  | 	if not versions_dir.dir_exists(versions_dir_path): | ||||||
|  | 		versions_dir.make_dir_recursive(versions_dir_path) | ||||||
|  |  | ||||||
| @ -3,5 +3,4 @@ | |||||||
| [ext_resource path="res://fonts/Retro Gaming.ttf" type="DynamicFontData" id=1] | [ext_resource path="res://fonts/Retro Gaming.ttf" type="DynamicFontData" id=1] | ||||||
|  |  | ||||||
| [resource] | [resource] | ||||||
| outline_color = Color( 0.0823529, 0.0745098, 0.117647, 1 ) |  | ||||||
| font_data = ExtResource( 1 ) | font_data = ExtResource( 1 ) | ||||||
|  | |||||||
| @ -14,10 +14,15 @@ config/name="UltraFlare Launcher" | |||||||
| run/main_scene="res://Main_menu.tscn" | run/main_scene="res://Main_menu.tscn" | ||||||
| config/icon="res://icon.png" | config/icon="res://icon.png" | ||||||
|  |  | ||||||
|  | [autoload] | ||||||
|  |  | ||||||
|  | Store="*res://Store.gd" | ||||||
|  | Versions="*res://Versions.gd" | ||||||
|  |  | ||||||
| [display] | [display] | ||||||
|  |  | ||||||
| window/stretch/mode="2d" | window/stretch/mode="2d" | ||||||
| window/stretch/aspect="keep" | window/stretch/aspect="expand" | ||||||
|  |  | ||||||
| [editor] | [editor] | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,8 +1,10 @@ | |||||||
| [gd_resource type="Theme" load_steps=3 format=2] | [gd_resource type="Theme" load_steps=4 format=2] | ||||||
|  |  | ||||||
| [ext_resource path="res://fonts/Title-font.tres" type="DynamicFont" id=1] | [ext_resource path="res://fonts/Title-font.tres" type="DynamicFont" id=1] | ||||||
| [ext_resource path="res://themes/Base_panel.tres" type="StyleBox" id=2] | [ext_resource path="res://themes/Base_panel.tres" type="StyleBox" id=2] | ||||||
|  | [ext_resource path="res://fonts/retro_gaming.tres" type="DynamicFont" id=3] | ||||||
|  |  | ||||||
| [resource] | [resource] | ||||||
| default_font = ExtResource( 1 ) | default_font = ExtResource( 1 ) | ||||||
| Panel/styles/panel = ExtResource( 2 ) | Panel/styles/panel = ExtResource( 2 ) | ||||||
|  | PopupMenu/fonts/font = ExtResource( 3 ) | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user