Added versions selector
This commit is contained in:
parent
b891381b2b
commit
adfc8000b2
@ -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)
|
||||
|
@ -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
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]
|
||||
|
||||
[resource]
|
||||
outline_color = Color( 0.0823529, 0.0745098, 0.117647, 1 )
|
||||
font_data = ExtResource( 1 )
|
||||
|
@ -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]
|
||||
|
||||
|
@ -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 )
|
||||
|
Loading…
Reference in New Issue
Block a user