mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-22 05:55:38 +00:00
A tidier classroom
This commit is contained in:
parent
3bb3d9fa3d
commit
971d93b158
|
@ -1,3 +1,6 @@
|
|||
#todo
|
||||
# add cores as class/ Like eumlator but one level lower
|
||||
|
||||
extends Control
|
||||
|
||||
var bios_type:int
|
||||
|
@ -30,19 +33,27 @@ func _ready():
|
|||
_connect_signals()
|
||||
_play_main_animations()
|
||||
%locale_option.selected = class_functions.map_locale_id(OS.get_locale_language())
|
||||
"""
|
||||
# Load json data. Test to show some data
|
||||
app_data = data_handler.load_base_data()
|
||||
app_data = data_handler.app_data
|
||||
|
||||
if app_data:
|
||||
var website_data = app_data.about_links["rd_web"]
|
||||
print (website_data.name,"-",website_data.url,"-",website_data.description)
|
||||
print (app_data.about_links["rd_web"]["url"])
|
||||
|
||||
var console: bool = false
|
||||
var test = class_functions.execute_command("cat",["/var/config/retrodeck/retrodeck.cfg"],console)
|
||||
print (test)
|
||||
"""
|
||||
var website_data: Link = app_data.about_links["rd_web"]
|
||||
print (website_data.name,"-",website_data.url,"-",website_data.description,"-",website_data.url)
|
||||
#print (app_data.about_links["rd_web"]["name"])
|
||||
|
||||
for key in app_data.emulators.keys():
|
||||
var emulator = app_data.emulators[key]
|
||||
# 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 json_file_path = "/var/config/retrodeck/retrodeck.json"
|
||||
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
|
||||
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:
|
||||
status_code_label = get_node("%status_code_label")
|
||||
theme_option = get_node("%theme_optionbutton")
|
||||
|
@ -128,6 +123,22 @@ func _conf_theme(index: int) -> void:
|
|||
_play_main_animations()
|
||||
|
||||
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"):
|
||||
_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="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://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://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://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"]
|
||||
|
@ -166,9 +167,11 @@ grow_vertical = 2
|
|||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
tab_alignment = 1
|
||||
current_tab = 7
|
||||
script = ExtResource("3_id6l4")
|
||||
|
||||
[node name="TK_GRAPHICS" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS"]
|
||||
|
@ -196,6 +199,7 @@ layout_mode = 2
|
|||
columns = 2
|
||||
|
||||
[node name="borders_adv_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer/decorations_container/GridContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
disabled = true
|
||||
text = "TK_ADVANCED"
|
||||
|
@ -225,9 +229,8 @@ text = "TK_ADVANCED"
|
|||
|
||||
[node name="borders" type="CheckButton" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
button_pressed = true
|
||||
text = "TK_BORDERS"
|
||||
icon = ExtResource("4_xcuib")
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="Background/MarginContainer/TabContainer/TK_GRAPHICS/ScrollContainer/VBoxContainer"]
|
||||
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/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_hover_color = Color(0.00392157, 0, 0, 1)
|
||||
toggle_mode = true
|
||||
text = "Nintendo
|
||||
Gameboy
|
||||
|
@ -1015,7 +1017,6 @@ popup/item_4/text = "OpenDyslexic3"
|
|||
popup/item_4/id = 4
|
||||
|
||||
[node name="TK_ABOUT" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
script = ExtResource("4_m4rto")
|
||||
|
||||
|
@ -1035,59 +1036,17 @@ theme_override_font_sizes/normal_font_size = 23
|
|||
text = "TK_ABOUTHEADER"
|
||||
scroll_active = false
|
||||
|
||||
[node name="website_button" type="Button" 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"]
|
||||
[node name="rd_title" type="RichTextLabel" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
||||
unique_name_in_owner = true
|
||||
clip_contents = false
|
||||
custom_minimum_size = Vector2(300, 300)
|
||||
custom_minimum_size = Vector2(300, 150)
|
||||
layout_mode = 2
|
||||
text = "RetroDECK"
|
||||
scroll_active = false
|
||||
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)
|
||||
layout_mode = 2
|
||||
offset_left = 166.0
|
||||
|
@ -1100,6 +1059,52 @@ texture = ExtResource("1_axfei")
|
|||
expand_mode = 1
|
||||
stretch_mode = 4
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="Background/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"]
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
layout_mode = 2
|
||||
text = "TK_LICENSES"
|
||||
icon = ExtResource("21_1vm5n")
|
||||
|
||||
[node name="side_logo" type="Control" parent="Background"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 6
|
||||
|
|
|
@ -22,6 +22,10 @@ config/icon="res://icon.svg"
|
|||
|
||||
class_functions="*res://scripts/class_functions.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]
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -34,21 +34,25 @@ func load_base_data() -> AppData:
|
|||
var emulator = Emulator.new()
|
||||
emulator.name = emulator_data["name"]
|
||||
emulator.description = emulator_data["description"]
|
||||
print (emulator.name)
|
||||
if emulator_data.has("properties"):
|
||||
for property_data in emulator_data["properties"]:
|
||||
print (emulator,"----",property_data)
|
||||
var property = EmulatorProperty.new()
|
||||
property.standalone = property_data.get("standalone", false)
|
||||
#todo fix error
|
||||
# property.abxy_button_status = property_data.get("abxy_button", {}).get("status", false)
|
||||
if property_data.has("cheevos"):
|
||||
property.cheevos = property_data.get("cheevos",true)
|
||||
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)
|
||||
|
||||
|
||||
emulators[key] = emulator
|
||||
|
||||
var this_app_data = AppData.new()
|
||||
this_app_data.about_links = about_links
|
||||
this_app_data.emulators = emulators
|
||||
return this_app_data
|
||||
var app_data = AppData.new()
|
||||
app_data.about_links = about_links
|
||||
app_data.emulators = emulators
|
||||
return app_data
|
||||
else:
|
||||
print("Error parsing JSON")
|
||||
else:
|
||||
|
@ -93,7 +97,7 @@ func save_base_data(app_data: AppData):
|
|||
var properties = []
|
||||
for property in emulator.properties:
|
||||
properties.append({
|
||||
"standalone": property.standalone,
|
||||
#"standalone": property.standalone,
|
||||
"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()
|
||||
for property in new_properties:
|
||||
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.ask_to_exit = property.ask_to_exit
|
||||
new_property.cheevos = property.cheevos
|
||||
|
||||
emulator.properties.append(new_property)
|
||||
|
||||
app_data.emulators[key] = emulator
|
||||
|
@ -176,7 +183,7 @@ func add_emulator() -> void:
|
|||
emulator.name = "Example Emulator"
|
||||
emulator.description = "An example emulator."
|
||||
var property = EmulatorProperty.new()
|
||||
property.standalone = true
|
||||
#property.standalone = true
|
||||
property.abxy_button_status = false
|
||||
emulator.properties.append(property)
|
||||
app_data.emulators["example_emulator"] = emulator
|
||||
|
@ -188,7 +195,7 @@ func modify_emulator_test() -> void:
|
|||
|
||||
var new_properties = []
|
||||
var new_property = EmulatorProperty.new()
|
||||
new_property.standalone = false
|
||||
#new_property.standalone = false
|
||||
new_property.abxy_button_status = true
|
||||
new_properties.append(new_property)
|
||||
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
extends Resource
|
||||
class_name EmulatorProperty
|
||||
|
||||
@export var standalone: bool
|
||||
@export var abxy_button_status: bool
|
||||
@export var borders: 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
|
||||
|
|
|
@ -13,12 +13,12 @@ var app_data = AppData.new()
|
|||
|
||||
func _ready():
|
||||
#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()
|
||||
_connect_signals()
|
||||
|
||||
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:
|
||||
"rd_web":
|
||||
%website_button.text = web_data.name
|
||||
|
|
Loading…
Reference in a new issue