mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-25 07:25:38 +00:00
Merge branch 'feat/godot' into cooker
This commit is contained in:
commit
53e30fcfbc
|
@ -1,3 +1,6 @@
|
||||||
|
#todo
|
||||||
|
# add cores as class/ Like eumlator but one level lower
|
||||||
|
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
var bios_type:int
|
var bios_type:int
|
||||||
|
@ -24,25 +27,33 @@ var a_button_texture_alt: Texture2D = load("res://assets/icons/kenney_input-prom
|
||||||
var b_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0043.png")
|
var b_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0043.png")
|
||||||
var b_button_texture_alt: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0048.png")
|
var b_button_texture_alt: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0048.png")
|
||||||
|
|
||||||
var app_data = AppData.new()
|
var app_data := AppData.new()
|
||||||
func _ready():
|
func _ready():
|
||||||
_get_nodes()
|
_get_nodes()
|
||||||
_connect_signals()
|
_connect_signals()
|
||||||
_play_main_animations()
|
_play_main_animations()
|
||||||
%locale_option.selected = class_functions.map_locale_id(OS.get_locale_language())
|
%locale_option.selected = class_functions.map_locale_id(OS.get_locale_language())
|
||||||
"""
|
app_data = data_handler.app_data
|
||||||
# Load json data. Test to show some data
|
|
||||||
app_data = data_handler.load_base_data()
|
|
||||||
|
|
||||||
if app_data:
|
if app_data:
|
||||||
var website_data = app_data.about_links["rd_web"]
|
var website_data: Link = app_data.about_links["rd_web"]
|
||||||
print (website_data.name,"-",website_data.url,"-",website_data.description)
|
print (website_data.name,"-",website_data.url,"-",website_data.description,"-",website_data.url)
|
||||||
print (app_data.about_links["rd_web"]["url"])
|
#print (app_data.about_links["rd_web"]["name"])
|
||||||
|
|
||||||
var console: bool = false
|
for key in app_data.emulators.keys():
|
||||||
var test = class_functions.execute_command("cat",["/var/config/retrodeck/retrodeck.cfg"],console)
|
var emulator = app_data.emulators[key]
|
||||||
print (test)
|
# Display the properties of each emulator
|
||||||
"""
|
print("Emulator Name: ", emulator.name)
|
||||||
|
print("Description: ", emulator.description)
|
||||||
|
print("Properties:")
|
||||||
|
# Iterate over properties and show each one
|
||||||
|
for property: EmulatorProperty in emulator.properties:
|
||||||
|
print("Cheevos: ", property.cheevos)
|
||||||
|
print("ABXY_button:", property.abxy_button)
|
||||||
|
print("multi_user_config_dir: ", property.multi_user_config_dir)
|
||||||
|
else:
|
||||||
|
print ("No emulators")
|
||||||
|
|
||||||
var config_file_path = "/var/config/retrodeck/retrodeck.cfg"
|
var config_file_path = "/var/config/retrodeck/retrodeck.cfg"
|
||||||
var json_file_path = "/var/config/retrodeck/retrodeck.json"
|
var json_file_path = "/var/config/retrodeck/retrodeck.json"
|
||||||
var config = data_handler.parse_config_to_json(config_file_path)
|
var config = data_handler.parse_config_to_json(config_file_path)
|
||||||
|
@ -68,23 +79,7 @@ func _ready():
|
||||||
n.self_modulate.a = 0.5 #make it half transparent
|
n.self_modulate.a = 0.5 #make it half transparent
|
||||||
combine_tkeys()
|
combine_tkeys()
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
|
|
||||||
if Input.is_action_pressed("quit1") and Input.is_action_pressed("quit2"):
|
|
||||||
get_tree().quit()
|
|
||||||
if Input.is_action_pressed("next_tab"):
|
|
||||||
%r1_button.texture_normal = %r1_button.texture_pressed
|
|
||||||
elif Input.is_action_pressed("previous_tab"):
|
|
||||||
%l1_button.texture_normal = %l1_button.texture_pressed
|
|
||||||
elif Input.is_action_pressed("back_button"):
|
|
||||||
%b_button.texture_normal = %b_button.texture_pressed
|
|
||||||
elif Input.is_action_pressed("action_button"):
|
|
||||||
%a_button.texture_normal = %a_button.texture_pressed
|
|
||||||
else:
|
|
||||||
%r1_button.texture_normal = r1_button_texture
|
|
||||||
%l1_button.texture_normal = l1_button_texture
|
|
||||||
%a_button.texture_normal = a_button_texture
|
|
||||||
%b_button.texture_normal = b_button_texture
|
|
||||||
func _get_nodes() -> void:
|
func _get_nodes() -> void:
|
||||||
status_code_label = get_node("%status_code_label")
|
status_code_label = get_node("%status_code_label")
|
||||||
theme_option = get_node("%theme_optionbutton")
|
theme_option = get_node("%theme_optionbutton")
|
||||||
|
@ -128,6 +123,22 @@ func _conf_theme(index: int) -> void:
|
||||||
_play_main_animations()
|
_play_main_animations()
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
|
|
||||||
|
if Input.is_action_pressed("quit1") and Input.is_action_pressed("quit2"):
|
||||||
|
get_tree().quit()
|
||||||
|
if Input.is_action_pressed("next_tab"):
|
||||||
|
%r1_button.texture_normal = %r1_button.texture_pressed
|
||||||
|
elif Input.is_action_pressed("previous_tab"):
|
||||||
|
%l1_button.texture_normal = %l1_button.texture_pressed
|
||||||
|
elif Input.is_action_pressed("back_button"):
|
||||||
|
%b_button.texture_normal = %b_button.texture_pressed
|
||||||
|
elif Input.is_action_pressed("action_button"):
|
||||||
|
%a_button.texture_normal = %a_button.texture_pressed
|
||||||
|
else:
|
||||||
|
%r1_button.texture_normal = r1_button_texture
|
||||||
|
%l1_button.texture_normal = l1_button_texture
|
||||||
|
%a_button.texture_normal = a_button_texture
|
||||||
|
%b_button.texture_normal = b_button_texture
|
||||||
if event.is_action_pressed("quit"):
|
if event.is_action_pressed("quit"):
|
||||||
_exit()
|
_exit()
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=58 format=3 uid="uid://61f6m4r1mpan"]
|
[gd_scene load_steps=59 format=3 uid="uid://61f6m4r1mpan"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bv6vh33cnfaw4" path="res://icon.svg" id="1_axfei"]
|
[ext_resource type="Texture2D" uid="uid://bv6vh33cnfaw4" path="res://icon.svg" id="1_axfei"]
|
||||||
[ext_resource type="Script" path="res://main.gd" id="1_obpq7"]
|
[ext_resource type="Script" path="res://main.gd" id="1_obpq7"]
|
||||||
|
@ -38,6 +38,7 @@
|
||||||
[ext_resource type="Texture2D" uid="uid://cbwhpqip43aei" path="res://res/flags/china_32.png" id="11_ri2fv"]
|
[ext_resource type="Texture2D" uid="uid://cbwhpqip43aei" path="res://res/flags/china_32.png" id="11_ri2fv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cqq2qlcr5djsw" path="res://assets/icons/Icon Pack/PS1.png" id="11_v45kn"]
|
[ext_resource type="Texture2D" uid="uid://cqq2qlcr5djsw" path="res://assets/icons/Icon Pack/PS1.png" id="11_v45kn"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b164ihk8riiwh" path="res://assets/graphics/space_bground.png" id="15_qdvxo"]
|
[ext_resource type="Texture2D" uid="uid://b164ihk8riiwh" path="res://assets/graphics/space_bground.png" id="15_qdvxo"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ble152m6361l8" path="res://assets/icons/pixelitos/128/internet-web-browser.png" id="21_1vm5n"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dyumvh0ixwrbl" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0042.png" id="30_glnve"]
|
[ext_resource type="Texture2D" uid="uid://dyumvh0ixwrbl" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0042.png" id="30_glnve"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cn11vcrybtor4" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0047.png" id="31_j5ri1"]
|
[ext_resource type="Texture2D" uid="uid://cn11vcrybtor4" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0047.png" id="31_j5ri1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cor8ep0fkqm08" path="res://res/Rekku/base.png" id="32_omdu2"]
|
[ext_resource type="Texture2D" uid="uid://cor8ep0fkqm08" path="res://res/Rekku/base.png" id="32_omdu2"]
|
||||||
|
@ -166,9 +167,11 @@ grow_vertical = 2
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tab_alignment = 1
|
tab_alignment = 1
|
||||||
|
current_tab = 7
|
||||||
script = ExtResource("3_id6l4")
|
script = ExtResource("3_id6l4")
|
||||||
|
|
||||||
[node name="TK_GRAPHICS" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
|
[node name="TK_GRAPHICS" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="ScrollContainer" type="ScrollContainer" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS"]
|
[node name="ScrollContainer" type="ScrollContainer" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS"]
|
||||||
|
@ -196,6 +199,7 @@ layout_mode = 2
|
||||||
columns = 2
|
columns = 2
|
||||||
|
|
||||||
[node name="borders_adv_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer/decorations_container/GridContainer"]
|
[node name="borders_adv_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer/decorations_container/GridContainer"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
disabled = true
|
disabled = true
|
||||||
text = "TK_ADVANCED"
|
text = "TK_ADVANCED"
|
||||||
|
@ -225,9 +229,8 @@ text = "TK_ADVANCED"
|
||||||
|
|
||||||
[node name="borders" type="CheckButton" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer"]
|
[node name="borders" type="CheckButton" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
|
||||||
button_pressed = true
|
|
||||||
text = "TK_BORDERS"
|
text = "TK_BORDERS"
|
||||||
|
icon = ExtResource("4_xcuib")
|
||||||
|
|
||||||
[node name="GridContainer" type="GridContainer" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer"]
|
[node name="GridContainer" type="GridContainer" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
@ -240,7 +243,6 @@ theme_override_colors/font_color = Color(0, 0.917647, 0, 1)
|
||||||
theme_override_colors/font_pressed_color = Color(0.913725, 0, 0, 1)
|
theme_override_colors/font_pressed_color = Color(0.913725, 0, 0, 1)
|
||||||
theme_override_colors/icon_normal_color = Color(0, 0.858824, 0, 1)
|
theme_override_colors/icon_normal_color = Color(0, 0.858824, 0, 1)
|
||||||
theme_override_colors/icon_pressed_color = Color(0.866667, 0, 0, 1)
|
theme_override_colors/icon_pressed_color = Color(0.866667, 0, 0, 1)
|
||||||
theme_override_colors/icon_hover_color = Color(0.00392157, 0, 0, 1)
|
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
text = "Nintendo
|
text = "Nintendo
|
||||||
Gameboy
|
Gameboy
|
||||||
|
@ -1015,7 +1017,6 @@ popup/item_4/text = "OpenDyslexic3"
|
||||||
popup/item_4/id = 4
|
popup/item_4/id = 4
|
||||||
|
|
||||||
[node name="TK_ABOUT" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
|
[node name="TK_ABOUT" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
|
||||||
visible = false
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
script = ExtResource("4_m4rto")
|
script = ExtResource("4_m4rto")
|
||||||
|
|
||||||
|
@ -1035,59 +1036,17 @@ theme_override_font_sizes/normal_font_size = 23
|
||||||
text = "TK_ABOUTHEADER"
|
text = "TK_ABOUTHEADER"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
|
|
||||||
[node name="website_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
[node name="rd_title" type="RichTextLabel" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "TK_WEBSITE"
|
|
||||||
|
|
||||||
[node name="changelog_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "TK_CHANGELOG"
|
|
||||||
|
|
||||||
[node name="wiki_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "TK_WIKI"
|
|
||||||
|
|
||||||
[node name="credits_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "TK_CREDITS"
|
|
||||||
|
|
||||||
[node name="donate_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "TK_DONATE"
|
|
||||||
|
|
||||||
[node name="contactus_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "TK_CONTACTUS"
|
|
||||||
|
|
||||||
[node name="licenses_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "TK_LICENSES"
|
|
||||||
|
|
||||||
[node name="ScrollContainer2" type="ScrollContainer" parent="Background/MarginContainer/TabContainer/TK_ABOUT"]
|
|
||||||
custom_minimum_size = Vector2(300, 200)
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 4
|
|
||||||
follow_focus = true
|
|
||||||
horizontal_scroll_mode = 0
|
|
||||||
vertical_scroll_mode = 0
|
|
||||||
|
|
||||||
[node name="rd_title" type="RichTextLabel" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer2"]
|
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
clip_contents = false
|
clip_contents = false
|
||||||
custom_minimum_size = Vector2(300, 300)
|
custom_minimum_size = Vector2(300, 150)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "RetroDECK"
|
text = "RetroDECK"
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
autowrap_mode = 2
|
autowrap_mode = 2
|
||||||
|
tab_size = 2
|
||||||
|
|
||||||
[node name="logo" type="TextureRect" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer2/rd_title"]
|
[node name="logo" type="TextureRect" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/rd_title"]
|
||||||
custom_minimum_size = Vector2(128, 128)
|
custom_minimum_size = Vector2(128, 128)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
offset_left = 166.0
|
offset_left = 166.0
|
||||||
|
@ -1100,6 +1059,60 @@ texture = ExtResource("1_axfei")
|
||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
stretch_mode = 4
|
stretch_mode = 4
|
||||||
|
|
||||||
|
[node name="GridContainer" type="GridContainer" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
columns = 3
|
||||||
|
|
||||||
|
[node name="website_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TK_WEBSITE"
|
||||||
|
icon = ExtResource("21_1vm5n")
|
||||||
|
|
||||||
|
[node name="changelog_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TK_CHANGELOG"
|
||||||
|
icon = ExtResource("21_1vm5n")
|
||||||
|
|
||||||
|
[node name="wiki_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TK_WIKI"
|
||||||
|
icon = ExtResource("21_1vm5n")
|
||||||
|
|
||||||
|
[node name="credits_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TK_CREDITS"
|
||||||
|
icon = ExtResource("21_1vm5n")
|
||||||
|
|
||||||
|
[node name="donate_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TK_DONATE"
|
||||||
|
icon = ExtResource("21_1vm5n")
|
||||||
|
|
||||||
|
[node name="contactus_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TK_CONTACTUS"
|
||||||
|
icon = ExtResource("21_1vm5n")
|
||||||
|
|
||||||
|
[node name="licenses_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/GridContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 2
|
||||||
|
text = "TK_LICENSES"
|
||||||
|
icon = ExtResource("21_1vm5n")
|
||||||
|
|
||||||
[node name="side_logo" type="Control" parent="Background"]
|
[node name="side_logo" type="Control" parent="Background"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 6
|
anchors_preset = 6
|
||||||
|
|
|
@ -22,6 +22,10 @@ config/icon="res://icon.svg"
|
||||||
|
|
||||||
class_functions="*res://scripts/class_functions.gd"
|
class_functions="*res://scripts/class_functions.gd"
|
||||||
data_handler="*res://scripts/data_handler.gd"
|
data_handler="*res://scripts/data_handler.gd"
|
||||||
|
AppDataD="res://scripts/app_data.gd"
|
||||||
|
Emulators="res://scripts/emulator.gd"
|
||||||
|
EmulatorProperties="res://scripts/emulator_property.gd"
|
||||||
|
Links="res://scripts/link.gd"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -34,21 +34,25 @@ func load_base_data() -> AppData:
|
||||||
var emulator = Emulator.new()
|
var emulator = Emulator.new()
|
||||||
emulator.name = emulator_data["name"]
|
emulator.name = emulator_data["name"]
|
||||||
emulator.description = emulator_data["description"]
|
emulator.description = emulator_data["description"]
|
||||||
print (emulator.name)
|
|
||||||
if emulator_data.has("properties"):
|
if emulator_data.has("properties"):
|
||||||
for property_data in emulator_data["properties"]:
|
for property_data in emulator_data["properties"]:
|
||||||
|
print (emulator,"----",property_data)
|
||||||
var property = EmulatorProperty.new()
|
var property = EmulatorProperty.new()
|
||||||
property.standalone = property_data.get("standalone", false)
|
if property_data.has("cheevos"):
|
||||||
#todo fix error
|
property.cheevos = property_data.get("cheevos",true)
|
||||||
# property.abxy_button_status = property_data.get("abxy_button", {}).get("status", false)
|
if property_data.has("cheevos_hardcore"):
|
||||||
|
property.cheevos_hardcore = property_data.get("cheevos_hardcore",true)
|
||||||
|
if property_data.has("abxy_button"):
|
||||||
|
property.abxy_button = property_data.get("abxy_button",true)
|
||||||
|
if property_data.has("multi_user_config_dir"):
|
||||||
|
property.multi_user_config_dir = property_data.get("multi_user_config_dir",true)
|
||||||
emulator.properties.append(property)
|
emulator.properties.append(property)
|
||||||
|
|
||||||
emulators[key] = emulator
|
emulators[key] = emulator
|
||||||
|
var app_data = AppData.new()
|
||||||
var this_app_data = AppData.new()
|
app_data.about_links = about_links
|
||||||
this_app_data.about_links = about_links
|
app_data.emulators = emulators
|
||||||
this_app_data.emulators = emulators
|
return app_data
|
||||||
return this_app_data
|
|
||||||
else:
|
else:
|
||||||
print("Error parsing JSON")
|
print("Error parsing JSON")
|
||||||
else:
|
else:
|
||||||
|
@ -93,7 +97,7 @@ func save_base_data(app_data: AppData):
|
||||||
var properties = []
|
var properties = []
|
||||||
for property in emulator.properties:
|
for property in emulator.properties:
|
||||||
properties.append({
|
properties.append({
|
||||||
"standalone": property.standalone,
|
#"standalone": property.standalone,
|
||||||
"abxy_button": {"status": property.abxy_button_status}
|
"abxy_button": {"status": property.abxy_button_status}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -153,8 +157,11 @@ func modify_emulator(key: String, new_name: String, new_description: String, new
|
||||||
emulator.properties.clear()
|
emulator.properties.clear()
|
||||||
for property in new_properties:
|
for property in new_properties:
|
||||||
var new_property = EmulatorProperty.new()
|
var new_property = EmulatorProperty.new()
|
||||||
new_property.standalone = property.standalone
|
new_property.borders = property.borders
|
||||||
new_property.abxy_button_status = property.abxy_button_status
|
new_property.abxy_button_status = property.abxy_button_status
|
||||||
|
new_property.ask_to_exit = property.ask_to_exit
|
||||||
|
new_property.cheevos = property.cheevos
|
||||||
|
|
||||||
emulator.properties.append(new_property)
|
emulator.properties.append(new_property)
|
||||||
|
|
||||||
app_data.emulators[key] = emulator
|
app_data.emulators[key] = emulator
|
||||||
|
@ -176,7 +183,7 @@ func add_emulator() -> void:
|
||||||
emulator.name = "Example Emulator"
|
emulator.name = "Example Emulator"
|
||||||
emulator.description = "An example emulator."
|
emulator.description = "An example emulator."
|
||||||
var property = EmulatorProperty.new()
|
var property = EmulatorProperty.new()
|
||||||
property.standalone = true
|
#property.standalone = true
|
||||||
property.abxy_button_status = false
|
property.abxy_button_status = false
|
||||||
emulator.properties.append(property)
|
emulator.properties.append(property)
|
||||||
app_data.emulators["example_emulator"] = emulator
|
app_data.emulators["example_emulator"] = emulator
|
||||||
|
@ -188,7 +195,7 @@ func modify_emulator_test() -> void:
|
||||||
|
|
||||||
var new_properties = []
|
var new_properties = []
|
||||||
var new_property = EmulatorProperty.new()
|
var new_property = EmulatorProperty.new()
|
||||||
new_property.standalone = false
|
#new_property.standalone = false
|
||||||
new_property.abxy_button_status = true
|
new_property.abxy_button_status = true
|
||||||
new_properties.append(new_property)
|
new_properties.append(new_property)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
extends Resource
|
extends Resource
|
||||||
class_name EmulatorProperty
|
class_name EmulatorProperty
|
||||||
|
|
||||||
@export var standalone: bool
|
@export var borders: bool
|
||||||
@export var abxy_button_status: bool
|
@export var abxy_button: bool
|
||||||
|
@export var cheevos: bool
|
||||||
|
@export var cheevos_hardcore: bool
|
||||||
|
@export var ask_to_exit: bool
|
||||||
|
@export var multi_user_config_dir: String
|
||||||
|
@export var universal_dyn_input: bool
|
||||||
|
|
|
@ -1,33 +1,36 @@
|
||||||
extends MarginContainer
|
extends MarginContainer
|
||||||
|
|
||||||
#var class_functions: ClassFunctions
|
var rd_web_button := Button.new()
|
||||||
|
var rd_changelog_button := Button.new()
|
||||||
var website_button: Button
|
|
||||||
var changelog_button: Button
|
|
||||||
var wiki_button: Button
|
var wiki_button: Button
|
||||||
var credits_button: Button
|
var credits_button: Button
|
||||||
var donate_button: Button
|
var donate_button: Button
|
||||||
var contactus_button: Button
|
var contactus_button: Button
|
||||||
var licenses_button: Button
|
var licenses_button: Button
|
||||||
var app_data = AppData.new()
|
var app_data := AppData.new()
|
||||||
|
var bArray :Array = [rd_web_button,rd_changelog_button]
|
||||||
func _ready():
|
func _ready():
|
||||||
#tk_about = class_functions.import_csv_data("res://tk_about.txt")
|
#tk_about = class_functions.import_csv_data("res://tk_about.txt")
|
||||||
app_data = data_handler.load_base_data()
|
app_data = data_handler.app_data
|
||||||
_get_nodes()
|
_get_nodes()
|
||||||
_connect_signals()
|
_connect_signals()
|
||||||
|
|
||||||
|
for but in bArray:
|
||||||
|
%GridContainer.add_child(but)
|
||||||
|
|
||||||
for id in app_data.about_links:
|
for id in app_data.about_links:
|
||||||
var web_data = app_data.about_links[id]
|
var web_data: Link = app_data.about_links[id]
|
||||||
match id:
|
match id:
|
||||||
"rd_web":
|
"rd_web":
|
||||||
%website_button.text = web_data.name
|
rd_web_button.text = web_data.name
|
||||||
%website_button.tooltip_text = web_data.description
|
rd_web_button.tooltip_text = web_data.description
|
||||||
%website_button.editor_description = web_data.url
|
rd_web_button.icon = ResourceLoader.load("res://assets/icons/pixelitos/128/internet-web-browser.png")
|
||||||
|
rd_web_button.editor_description = web_data.url
|
||||||
"rd_changelog":
|
"rd_changelog":
|
||||||
%changelog_button.text = web_data.name
|
rd_changelog_button.text = web_data.name
|
||||||
%changelog_button.tooltip_text = web_data.description
|
rd_changelog_button.tooltip_text = web_data.description
|
||||||
%changelog_button.editor_description = web_data.url
|
rd_changelog_button.icon = ResourceLoader.load("res://assets/icons/pixelitos/128/internet-web-browser.png")
|
||||||
|
rd_changelog_button.editor_description = web_data.url
|
||||||
"rd_wiki":
|
"rd_wiki":
|
||||||
%wiki_button.text = web_data.name
|
%wiki_button.text = web_data.name
|
||||||
%wiki_button.tooltip_text = web_data.description
|
%wiki_button.tooltip_text = web_data.description
|
||||||
|
@ -50,18 +53,15 @@ func _ready():
|
||||||
%licenses_button.editor_description = web_data.url
|
%licenses_button.editor_description = web_data.url
|
||||||
|
|
||||||
func _get_nodes() -> void:
|
func _get_nodes() -> void:
|
||||||
website_button = get_node("%website_button")
|
|
||||||
changelog_button = get_node("%changelog_button")
|
|
||||||
wiki_button = get_node("%wiki_button")
|
wiki_button = get_node("%wiki_button")
|
||||||
credits_button = get_node("%credits_button")
|
credits_button = get_node("%credits_button")
|
||||||
donate_button = get_node("%donate_button")
|
donate_button = get_node("%donate_button")
|
||||||
contactus_button = get_node("%contactus_button")
|
contactus_button = get_node("%contactus_button")
|
||||||
licenses_button = get_node("%licenses_button")
|
licenses_button = get_node("%licenses_button")
|
||||||
|
|
||||||
|
|
||||||
func _connect_signals() -> void:
|
func _connect_signals() -> void:
|
||||||
website_button.pressed.connect(_about_button_pressed.bind("rd_web"))
|
rd_web_button.pressed.connect(_about_button_pressed.bind("rd_web"))
|
||||||
changelog_button.pressed.connect(_about_button_pressed.bind("rd_changelog"))
|
rd_changelog_button.pressed.connect(_about_button_pressed.bind("rd_changelog"))
|
||||||
wiki_button.pressed.connect(_about_button_pressed.bind("rd_wiki"))
|
wiki_button.pressed.connect(_about_button_pressed.bind("rd_wiki"))
|
||||||
credits_button.pressed.connect(_about_button_pressed.bind("rd_credits"))
|
credits_button.pressed.connect(_about_button_pressed.bind("rd_credits"))
|
||||||
donate_button.pressed.connect(_about_button_pressed.bind("rd_donate"))
|
donate_button.pressed.connect(_about_button_pressed.bind("rd_donate"))
|
||||||
|
@ -71,9 +71,9 @@ func _connect_signals() -> void:
|
||||||
func _about_button_pressed(id: String) -> void:
|
func _about_button_pressed(id: String) -> void:
|
||||||
match id:
|
match id:
|
||||||
"rd_web":
|
"rd_web":
|
||||||
OS.shell_open(%website_button.editor_description)
|
OS.shell_open(rd_web_button.editor_description)
|
||||||
"rd_changelog":
|
"rd_changelog":
|
||||||
OS.shell_open(%changelog_button.editor_description)
|
OS.shell_open(rd_changelog_button.editor_description)
|
||||||
"rd_wiki":
|
"rd_wiki":
|
||||||
OS.shell_open(%wiki_button.editor_description)
|
OS.shell_open(%wiki_button.editor_description)
|
||||||
"rd_credits":
|
"rd_credits":
|
||||||
|
|
Loading…
Reference in a new issue