Added versions selector

This commit is contained in:
Noah 2022-10-10 20:59:43 -05:00
parent b891381b2b
commit adfc8000b2
7 changed files with 146 additions and 24 deletions

View File

@ -1,4 +1,11 @@
extends Control
onready var Version_menu = $Panel/Version_menu
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)

View File

@ -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://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 )
@ -13,7 +14,18 @@ default_font = ExtResource( 4 )
size = 40
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
font_data = ExtResource( 2 )
@ -22,21 +34,12 @@ anchor_right = 1.0
anchor_bottom = 1.0
theme = ExtResource( 5 )
script = ExtResource( 3 )
__meta__ = {
"_edit_lock_": true
}
[node name="HTTPRequest" type="HTTPRequest" parent="."]
[node name="Background" type="TextureRect" parent="."]
margin_right = 2000.0
margin_bottom = 2000.0
rect_scale = Vector2( 0.722402, 0.558973 )
texture = ExtResource( 1 )
__meta__ = {
"_edit_group_": true,
"_edit_lock_": true
}
[node name="Header" type="Label" parent="."]
anchor_right = 1.0
@ -51,18 +54,28 @@ valign = 1
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 40.0
margin_top = -112.0
margin_right = -40.0
margin_left = 64.0
margin_top = -120.0
margin_right = -64.0
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 = 344.0
margin_top = 24.0
margin_right = 610.0
margin_bottom = 96.0
margin_left = 288.0
margin_top = 8.0
margin_right = 612.0
margin_bottom = 61.0
rect_scale = Vector2( 0.962016, 0.91427 )
custom_fonts/font = SubResource( 3 )
custom_fonts/font = SubResource( 5 )
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
View 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
View 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)

View File

@ -3,5 +3,4 @@
[ext_resource path="res://fonts/Retro Gaming.ttf" type="DynamicFontData" id=1]
[resource]
outline_color = Color( 0.0823529, 0.0745098, 0.117647, 1 )
font_data = ExtResource( 1 )

View File

@ -14,10 +14,15 @@ config/name="UltraFlare Launcher"
run/main_scene="res://Main_menu.tscn"
config/icon="res://icon.png"
[autoload]
Store="*res://Store.gd"
Versions="*res://Versions.gd"
[display]
window/stretch/mode="2d"
window/stretch/aspect="keep"
window/stretch/aspect="expand"
[editor]

View File

@ -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://themes/Base_panel.tres" type="StyleBox" id=2]
[ext_resource path="res://fonts/retro_gaming.tres" type="DynamicFont" id=3]
[resource]
default_font = ExtResource( 1 )
Panel/styles/panel = ExtResource( 2 )
PopupMenu/fonts/font = ExtResource( 3 )