diff --git a/tools/configurator/components/bios_check/bios_check.gd b/tools/configurator/components/bios_check/bios_check.gd index e60ce5bd..ea974ec0 100644 --- a/tools/configurator/components/bios_check/bios_check.gd +++ b/tools/configurator/components/bios_check/bios_check.gd @@ -2,8 +2,8 @@ extends Control var bios_result: Dictionary var console: bool = false -var BIOS_COLUMNS_BASIC := ["BIOS File Name", "System", "Found", "Hash Match", "Description"] -var BIOS_COLUMNS_EXPERT := ["BIOS File Name", "System", "Found", "Hash Match", "Description", "Subdirectory", "Hash"] +var BIOS_COLUMNS_BASIC := ["BIOS File Name", "System", "Found", "Hash\nMatch", "Description"] +var BIOS_COLUMNS_EXPERT := ["BIOS File Name", "System", "Found", "Hash\nMatch", "Description", "Sub\nFolder", "Hash"] @onready var bios_type:int = get_tree().current_scene.bios_type @onready var custom_theme: Theme = get_tree().current_scene.custom_theme @@ -15,10 +15,17 @@ func _ready(): if bios_type == 1: #Basic BIOS button pressed table.columns = BIOS_COLUMNS_BASIC.size() for i in BIOS_COLUMNS_BASIC.size(): + table.set_column_custom_minimum_width(0, 150) + table.set_column_custom_minimum_width(1, 200) + table.set_column_custom_minimum_width(4, 350) table.set_column_title(i, BIOS_COLUMNS_BASIC[i]) else: #Assume advanced BIOS button pressed table.columns = BIOS_COLUMNS_EXPERT.size() for i in BIOS_COLUMNS_EXPERT.size(): + table.set_column_custom_minimum_width(0, 170) + table.set_column_custom_minimum_width(1, 200) + table.set_column_custom_minimum_width(4, 325) + table.set_column_custom_minimum_width(6, 225) table.set_column_title(i, BIOS_COLUMNS_EXPERT[i]) var root = table.create_item() table.hide_root = true @@ -29,12 +36,19 @@ func _ready(): var parameters = ["check_bios_files"] bios_result = await class_functions.run_thread_command(class_functions.wrapper_command, parameters, console) var bios_list = bios_result["output"] - var bios_lines = bios_list.split("\n") + var bios_lines: Array = bios_list.split("\n") for line in bios_lines: - var bios_line = line.split("^") + var bios_line: Array = line.split("^") var table_line: TreeItem = table.create_item(root) for i in bios_line.size(): + if bios_line.size() >= 5: + if bios_line[2] == "No": + table_line.set_custom_bg_color(i,Color(1,0,0,0.15)) + elif bios_line[2] == "Yes": + table_line.set_custom_bg_color(i,Color(0,1,0,0.15)) + elif bios_line[2] == "Yes" and bios_line[3] == "No": + table_line.set_custom_bg_color(i,Color(1,0.6,0,0.15)) table_line.set_text(i, bios_line[i]) - if table_line.get_index() % 2 == 1: - table_line.set_custom_bg_color(i,Color(0.15, 0.15, 0.15, 1),false) - table_line.set_custom_color(i,Color(1,1,1,1)) + #if table_line.get_index() % 2 == 1: + #table_line.set_custom_bg_color(i,Color(0.15, 0.15, 0.15, 1),false) + #table_line.set_custom_color(i,Color(1,1,1,1)) diff --git a/tools/configurator/components/bios_check/bios_popup_content.tscn b/tools/configurator/components/bios_check/bios_popup_content.tscn index 8eaad1aa..2055cd0b 100644 --- a/tools/configurator/components/bios_check/bios_popup_content.tscn +++ b/tools/configurator/components/bios_check/bios_popup_content.tscn @@ -4,6 +4,12 @@ [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8e2dh"] bg_color = Color(0.133, 0.133, 0.133, 1) +border_width_left = 25 +border_width_top = 25 +border_width_right = 25 +border_width_bottom = 25 +border_color = Color(0.505882, 0.505882, 0.505882, 0.647059) +border_blend = true [node name="PopupContent" type="Control"] top_level = true @@ -28,6 +34,7 @@ grow_vertical = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_font_sizes/font_size = 16 +theme_override_font_sizes/title_button_font_size = 18 theme_override_styles/panel = SubResource("StyleBoxFlat_8e2dh") columns = 5 column_titles_visible = true diff --git a/tools/configurator/export_presets.cfg b/tools/configurator/export_presets.cfg index b5845d75..8ed4d864 100644 --- a/tools/configurator/export_presets.cfg +++ b/tools/configurator/export_presets.cfg @@ -3,7 +3,7 @@ name="Linux/X11 64-bit" platform="Linux" runnable=true -advanced_options=false +advanced_options=true dedicated_server=false custom_features="" export_filter="all_resources" @@ -20,7 +20,7 @@ script_export_mode=2 custom_template/debug="" custom_template/release="" -debug/export_console_wrapper=1 +debug/export_console_wrapper=0 binary_format/embed_pck=true texture_format/s3tc_bptc=true texture_format/etc2_astc=false diff --git a/tools/configurator/main.tscn b/tools/configurator/main.tscn index c91daa43..83e08c84 100644 --- a/tools/configurator/main.tscn +++ b/tools/configurator/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=130 format=3 uid="uid://61f6m4r1mpan"] +[gd_scene load_steps=133 format=3 uid="uid://61f6m4r1mpan"] [ext_resource type="Texture2D" uid="uid://bv6vh33cnfaw4" path="res://icon.svg" id="1_axfei"] [ext_resource type="Theme" uid="uid://hhc60cllcg47" path="res://assets/themes/default_theme.tres" id="1_if8nh"] @@ -135,6 +135,19 @@ bg_color = Color(0.101961, 0.623529, 1, 0.376471) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8lrwm"] bg_color = Color(0.352941, 0.858824, 0.129412, 0.556863) +[sub_resource type="Gradient" id="Gradient_wpgfp"] +offsets = PackedFloat32Array(0, 0.631148) +colors = PackedColorArray(0.101961, 0.623529, 1, 1, 0.580392, 0.419608, 0.921569, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_g8i86"] +gradient = SubResource("Gradient_wpgfp") +width = 128 +height = 128 + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_6ihey"] +texture = SubResource("GradientTexture2D_g8i86") +region_rect = Rect2(0, 0, 128, 127) + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_omewi"] bg_color = Color(0.712505, 0, 0.175592, 1) @@ -283,7 +296,7 @@ size_flags_vertical = 3 layout_mode = 2 theme_override_constants/h_separation = 15 theme_override_constants/v_separation = 15 -columns = 4 +columns = 5 [node name="ask_to_exit_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] unique_name_in_owner = true @@ -296,7 +309,7 @@ icon = ExtResource("5_ahd1x") alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 -metadata/description = "Enables or disables ask to exit prompts in all supported emulators and cores. Note: If you disable this, the emulators will directly exit." +metadata/description = "Enables or disables ask to exit prompts in all supported emulators and cores.\\nNote: If you disable this, the emulators will directly exit." metadata/rekku = "If this box is orange blame monkeyx he loves Blaclpool FC. Or long press to reset and turm them all on again. You can also edit individual options for systems in the System TAB. " [node name="ask_to_exit_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/ask_to_exit_button"] @@ -738,31 +751,41 @@ metadata/_tab_index = 2 [node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS"] layout_mode = 2 +follow_focus = true [node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer"] layout_mode = 2 size_flags_horizontal = 3 +size_flags_vertical = 3 theme_override_constants/separation = 64 -[node name="troubleshoot_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] +[node name="troubleshoot_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] layout_mode = 2 -theme_override_constants/separation = 15 +columns = 5 -[node name="check_conn_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] +[node name="check_conn_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer"] unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/icon_max_width = 64 toggle_mode = true text = "CHECK CONNECTION" icon = ExtResource("50_5d2ui") -expand_icon = true +icon_alignment = 1 +vertical_icon_alignment = 0 -[node name="logs_button" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] +[node name="logs_button" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer"] unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/icon_max_width = 64 alignment = 1 -expand_icon = true +icon_alignment = 1 +vertical_icon_alignment = 0 selected = 0 item_count = 4 popup/item_0/text = "LOGS" @@ -779,29 +802,41 @@ popup/item_3/text = "Retroarch" popup/item_3/icon = ExtResource("4_xcuib") popup/item_3/id = 3 -[node name="bios_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] +[node name="bios_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer"] custom_minimum_size = Vector2(0, 100) layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/icon_max_width = 64 text = "BIOS STANDARD" icon = ExtResource("50_tl5ty") -expand_icon = true +icon_alignment = 1 +vertical_icon_alignment = 0 -[node name="bios_button_expert" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] +[node name="bios_button_expert" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer"] custom_minimum_size = Vector2(0, 100) layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/icon_max_width = 64 text = "BIOS EXPERT" icon = ExtResource("50_tl5ty") -expand_icon = true +icon_alignment = 1 +vertical_icon_alignment = 0 -[node name="backup_user_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] +[node name="backup_user_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer"] unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_constants/icon_max_width = 64 text = "BACKUP USER DATA" icon = ExtResource("54_f245y") -expand_icon = true +icon_alignment = 1 +vertical_icon_alignment = 0 -[node name="progress_bar_backup" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container/backup_user_button"] +[node name="progress_bar_backup" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer/backup_user_button"] unique_name_in_owner = true visible = false layout_mode = 1 @@ -815,36 +850,38 @@ show_percentage = false indeterminate = true editor_preview_indeterminate = false -[node name="controls_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] +[node name="controls_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] layout_mode = 2 +columns = 5 -[node name="controls_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] +[node name="controls_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_gridcontainer"] layout_mode = 2 text = "TK_CONTROLS" -[node name="controls_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] +[node name="controls_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_gridcontainer"] layout_mode = 2 -[node name="controller_templates_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] +[node name="controller_templates_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_gridcontainer"] layout_mode = 2 -[node name="controller_templates" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container/controller_templates_container"] +[node name="controller_templates" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_gridcontainer/controller_templates_container"] layout_mode = 2 size_flags_horizontal = 3 text = "TK_STEAMCONTEMP" -[node name="controller_templater_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container/controller_templates_container"] +[node name="controller_templater_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_gridcontainer/controller_templates_container"] layout_mode = 2 size_flags_horizontal = 10 size_flags_vertical = 4 disabled = true text = "TK_INSTALL" -[node name="button_layout_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] +[node name="button_layout_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_gridcontainer"] layout_mode = 2 -[node name="file_tools_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] +[node name="file_tools_container" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] layout_mode = 2 +columns = 5 [node name="file_tools_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] layout_mode = 2 @@ -868,42 +905,31 @@ layout_mode = 2 disabled = true text = "TK_MOVEFILES" -[node name="tools_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] -layout_mode = 2 - -[node name="tools_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +[node name="tools_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] layout_mode = 2 text = "TK_GENTOOLS" -[node name="tools_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] -layout_mode = 2 - -[node name="steamgrid_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +[node name="steamgrid_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] layout_mode = 2 disabled = true text = "TK_GRIDINSTALL" -[node name="fav_steam" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +[node name="fav_steam" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] layout_mode = 2 disabled = true +toggle_mode = false text = "TK_FAVSTEAM" -[node name="scan_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] -layout_mode = 2 - -[node name="scan_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +[node name="scan_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] layout_mode = 2 text = "TK_SCAN" -[node name="scan_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 - -[node name="scummvm_scan" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +[node name="scummvm_scan" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] layout_mode = 2 disabled = true text = "TK_SCUMMVMSCAN" -[node name="multifile_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +[node name="multifile_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] layout_mode = 2 disabled = true text = "TK_MULTIFILE" @@ -914,7 +940,9 @@ script = ExtResource("54_bxhvn") metadata/_tab_index = 3 [node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS"] +unique_name_in_owner = true layout_mode = 2 +follow_focus = true [node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer"] layout_mode = 2 @@ -925,6 +953,7 @@ unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 theme_override_constants/icon_max_width = 64 +theme_override_styles/normal = SubResource("StyleBoxTexture_6ihey") text = "SYSTEM SETTINGS" icon = ExtResource("38_xw5qd") expand_icon = true @@ -1061,7 +1090,7 @@ unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 theme_override_constants/icon_max_width = 64 -text = "ACHIEVMENTS" +text = "ACHIEVEMENTS" icon = ExtResource("51_12lj4") expand_icon = true metadata/description = "Click to show to show RetroAchievements fot supported systems" @@ -1096,7 +1125,6 @@ show_percentage = false [node name="cheevos_enabled_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_gridcontainer"] unique_name_in_owner = true -visible = false layout_mode = 2 [node name="cheevos_login_container" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_gridcontainer/cheevos_enabled_container"] @@ -1314,6 +1342,7 @@ metadata/_tab_index = 4 [node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT"] layout_mode = 2 +follow_focus = true [node name="about_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer"] layout_mode = 2 @@ -1965,7 +1994,7 @@ scale = Vector2(0.390625, 0.398438) texture = ExtResource("93_f7ex4") script = ExtResource("94_8nlr1") -[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container/bios_button" to="." method="_on_bios_button_pressed"] -[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container/bios_button_expert" to="." method="_on_bios_button_expert_pressed"] +[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer/bios_button" to="." method="_on_bios_button_pressed"] +[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_gridcontainer/bios_button_expert" to="." method="_on_bios_button_expert_pressed"] [connection signal="item_selected" from="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_gridcontainer2/locale_option" to="." method="_on_locale_selected"] [connection signal="pressed" from="controller_guide/HBoxContainer/exit_button" to="." method="_on_exit_button_pressed"] diff --git a/tools/configurator/project.godot b/tools/configurator/project.godot index 369be3f4..82b4b71f 100644 --- a/tools/configurator/project.godot +++ b/tools/configurator/project.godot @@ -79,12 +79,14 @@ next_tab={ "deadzone": 0.5, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":5,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194328,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } previous_tab={ "deadzone": 0.5, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":4,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } back_button={ diff --git a/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres b/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres index b102c9f6..4589760d 100644 --- a/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres +++ b/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres @@ -1087,7 +1087,7 @@ cache/0/16/0/glyphs/95/uv_rect = Rect2(92, 148, 6, 1) cache/0/16/0/glyphs/95/texture_idx = 0 cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0) -[sub_resource type="Image" id="Image_ydvek"] +[sub_resource type="Image" id="Image_rprbs"] data = { "data": PackedByteArray("4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg/////////////////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4A=="), "format": "Lum8", @@ -1097,9 +1097,9 @@ data = { } [sub_resource type="ImageTexture" id="447"] -image = SubResource("Image_ydvek") +image = SubResource("Image_rprbs") -[sub_resource type="Image" id="Image_bb1ii"] +[sub_resource type="Image" id="Image_cf6bc"] data = { "data": PackedByteArray("AAQACgARABkAHwAiACQAJAAkACQAIgAfABkAEQAKAAQACgAVACUANAA/AEYARwBIAEgARwBGAD8ANAAlABUACgARACU/d1rvVv9W/1b/Vv9W/1b/Vv9W/1rvP3cAJQARABkANFnvSP9E/0P/Q/9D/0P/Q/9D/0T/SP9Z7wA0ABkAHwA/VP9D/0P/Q/9D/0P/Q/9D/0P/Q/9D/1T/AD8AHwAiAEZS/0L/Qv9C/0L/Qv9C/0L/Qv9C/0L/Uv8ARgAiACQAR1H/QP9A/0D/QP9A/0D/QP9A/0D/QP9R/wBHACQAJABIT/8//z//P/8//z//P/8//z//P/8//0//AEgAJAAkAEhN/z7/Pv8+/z7/Pv8+/z7/Pv8+/z7/Tf8ASAAkACQAR0z/Pf89/z3/Pf89/z3/Pf89/z3/Pf9M/wBHACQAIgBGSv87/zv/O/87/zv/O/87/zv/O/87/0r/AEYAIgAfAD9J/zr/Ov86/zr/Ov86/zr/Ov86/zr/Sf8APwAfABkANEvvPf85/zn/Of85/zn/Of85/zn/Pf9L7wA0ABkAEQAlNXdK70f/Rv9G/0b/Rv9G/0b/R/9K7TV3ACUAEQAKABUAJQA0AD8ARgBHAEgASABHAEYAPwA0ACUAFQAKAAQACgARABkAHwAiACQAJAAkACQAIgAfABkAEQAKAAQ="), "format": "LumAlpha8", @@ -1109,7 +1109,7 @@ data = { } [sub_resource type="ImageTexture" id="53"] -image = SubResource("Image_bb1ii") +image = SubResource("Image_cf6bc") [sub_resource type="StyleBoxTexture" id="54"] content_margin_left = 6.0 @@ -1123,7 +1123,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_kgfkv"] +[sub_resource type="Image" id="Image_1cy53"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvw5HjL85R4y/aEeMv3pHjL97R4y/e0eMv3tHjL97R4y/ekeMv2hHjL85R4y/DgAAAAAAAAAAAAAAAAAAAABHjL86R4y/dEeMvxBHjL8IR4y/CEeMvwhHjL8IR4y/CEeMvwhHjL8QR4y/dEeMvzoAAAAAAAAAAAAAAAAAAAAAR4y/aUeMvw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvw9HjL9pAAAAAAAAAAAAAAAAAAAAAEeMv3tHjL8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8GR4y/ewAAAAAAAAAAAAAAAAAAAABHjL97R4y/CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR4y/CEeMv3sAAAAAAAAAAAAAAAAAAAAAR4y/e0eMvwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvwhHjL97AAAAAAAAAAAAAAAAAAAAAEeMv3tHjL8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8IR4y/ewAAAAAAAAAAAAAAAAAAAABHjL97R4y/CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR4y/CEeMv3sAAAAAAAAAAAAAAAAAAAAAR4y/e0eMvwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvwZHjL97AAAAAAAAAAAAAAAAAAAAAEeMv2lHjL8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8OR4y/aQAAAAAAAAAAAAAAAAAAAABHjL86R4y/dUeMvw9HjL8IR4y/CEeMvwhHjL8IR4y/CEeMvwhHjL8RR4y/dEeMvzoAAAAAAAAAAAAAAAAAAAAAR4y/DkeMvzpHjL9oR4y/ekeMv3tHjL97R4y/e0eMv3tHjL96R4y/aEeMvzlHjL8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -1133,7 +1133,7 @@ data = { } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_kgfkv") +image = SubResource("Image_1cy53") [sub_resource type="StyleBoxTexture" id="57"] content_margin_left = 6.0 @@ -1147,7 +1147,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_shhco"] +[sub_resource type="Image" id="Image_b3ady"] data = { "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAoAAAAVAAAAJQAAADQAAAA/AAAARgAAAEcAAABIAAAASAAAAEcAAABGAAAAPwAAADQAAAAlAAAAFQAAAAoAAAARAAAAJUJAS3dfWmzvW1do/1pWZ/9aVmf/WlZn/1pWZ/9aVmf/WlZn/1tXaP9fWmzvQkBLdwAAACUAAAARAAAAGQAAADRfWmvvTUpX/0lGUv9IRVH/SEVR/0hFUf9IRVH/SEVR/0hFUf9JRlL/TUpX/19aa+8AAAA0AAAAGQAAAB8AAAA/W1dm/0lGUv9IRVH/SEVR/0hFUf9IRVH/SEVR/0hFUf9IRVH/SEVR/0lGUv9bV2b/AAAAPwAAAB8AAAAiAAAARllVZP9HRFD/R0RQ/0dEUP9HRFD/R0RQ/0dEUP9HRFD/R0RQ/0dEUP9HRFD/WVVk/wAAAEYAAAAiAAAAJAAAAEdYVGT/RkNQ/0ZDUP9GQ1D/RkNQ/0ZDUP9GQ1D/RkNQ/0ZDUP9GQ1D/RkNQ/1hUZP8AAABHAAAAJAAAACQAAABIVlNj/0VCT/9FQk//RUJP/0VCT/9FQk//RUJP/0VCT/9FQk//RUJP/0VCT/9WU2P/AAAASAAAACQAAAAkAAAASFZTYv9FQk7/RUJO/0VCTv9FQk7/RUJO/0VCTv9FQk7/RUJO/0VCTv9FQk7/VlNi/wAAAEgAAAAkAAAAJAAAAEdVUWL/REFO/0RBTv9EQU7/REFO/0RBTv9EQU7/REFO/0RBTv9EQU7/REFO/1VRYv8AAABHAAAAJAAAACIAAABGVVFg/0RBTf9EQU3/REFN/0RBTf9EQU3/REFN/0RBTf9EQU3/REFN/0RBTf9VUWD/AAAARgAAACIAAAAfAAAAP1VRYP9EQU3/Q0BM/0NATP9DQEz/Q0BM/0NATP9DQEz/Q0BM/0NATP9EQU3/VVFg/wAAAD8AAAAfAAAAGQAAADRWU2TvR0NR/0M/Tf9CP0z/Qj9M/0I/TP9CP0z/Qj9M/0I/TP9DP03/R0NR/1dTZO8AAAA0AAAAGQAAABEAAAAlPjtGd1dTY+9TUF//U09e/1NPXv9TT17/U09e/1NPXv9TT17/U1Bf/1dTY+0+O0Z3AAAAJQAAABEAAAAKAAAAFQAAACUAAAA0AAAAPwAAAEYAAABHAAAASAAAAEgAAABHAAAARgAAAD8AAAA0AAAAJQAAABUAAAAKAAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABA=="), "format": "RGBA8", @@ -1157,7 +1157,7 @@ data = { } [sub_resource type="ImageTexture" id="59"] -image = SubResource("Image_shhco") +image = SubResource("Image_b3ady") [sub_resource type="StyleBoxTexture" id="60"] content_margin_left = 6.0 @@ -1175,7 +1175,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_v0gnd"] +[sub_resource type="Image" id="Image_7hmcg"] data = { "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAoAAAAVAAAAJQAAADQAAAA/AAAARgAAAEcAAABIAAAASAAAAEcAAABGAAAAPwAAADQAAAAlAAAAFQAAAAoAAAARAAAAJTw6RHdWU2HvUlBd/1FPXf9RT13/UU9d/1FPXf9RT13/UU9d/1JQXf9WU2HvPDpEdwAAACUAAAARAAAAGQAAADRWUmDvRkJO/0I+Sv9BPkn/QT5J/0E+Sf9BPkn/QT5J/0E+Sf9CPkr/RkJO/1ZSYO8AAAA0AAAAGQAAAB8AAAA/UU5b/0E+Sf9APkj/QD5I/0A+SP9APkj/QD5I/0A+SP9APkj/QD5I/0E+Sf9RTlv/AAAAPwAAAB8AAAAiAAAARk9MWf8/PUf/Pz1H/z89R/8/PUf/Pz1H/z89R/8/PUf/Pz1H/z89R/8/PUf/T0xZ/wAAAEYAAAAiAAAAJAAAAEdOSlj/PjtG/z47Rv8+O0b/PjtG/z47Rv8+O0b/PjtG/z47Rv8+O0b/PjtG/05KWP8AAABHAAAAJAAAACQAAABIS0lV/zw6RP88OkT/PDpE/zw6RP88OkT/PDpE/zw6RP88OkT/PDpE/zw6RP9LSVX/AAAASAAAACQAAAAkAAAASEpHVP87OUP/OzlD/zs5Q/87OUP/OzlD/zs5Q/87OUP/OzlD/zs5Q/87OUP/SkdU/wAAAEgAAAAkAAAAJAAAAEdJRlP/OjhC/zo4Qv86OEL/OjhC/zo4Qv86OEL/OjhC/zo4Qv86OEL/OjhC/0lGU/8AAABHAAAAJAAAACIAAABGR0VQ/zk3QP85N0D/OTdA/zk3QP85N0D/OTdA/zk3QP85N0D/OTdA/zk3QP9HRVD/AAAARgAAACIAAAAfAAAAP0dDUP84NT//ODU//zg1P/84NT//ODU//zg1P/84NT//ODU//zg1P/84NT//R0NQ/wAAAD8AAAAfAAAAGQAAADRHRFLvOjhC/zY0Pv82ND7/NjQ+/zY0Pv82ND7/NjQ+/zY0Pv82ND7/OjhC/0dEUu8AAAA0AAAAGQAAABEAAAAlMzE5d0dEUO9EQk3/REFM/0RBTP9EQUz/REFM/0RBTP9EQUz/REJN/0dEUe0zMTl3AAAAJQAAABEAAAAKAAAAFQAAACUAAAA0AAAAPwAAAEYAAABHAAAASAAAAEgAAABHAAAARgAAAD8AAAA0AAAAJQAAABUAAAAKAAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABA=="), "format": "RGBA8", @@ -1185,7 +1185,7 @@ data = { } [sub_resource type="ImageTexture" id="62"] -image = SubResource("Image_v0gnd") +image = SubResource("Image_7hmcg") [sub_resource type="StyleBoxTexture" id="63"] content_margin_left = 6.0 @@ -1199,7 +1199,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_h4ote"] +[sub_resource type="Image" id="Image_cg8le"] data = { "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAsAAAAWAAAAJwAAADYAAABBAAAASQAAAEoAAABLAAAASwAAAEoAAABJAAAAQQAAADYAAAAnAAAAFgAAAAsAAAATAAAAKTEvN4BGQ0/xQ0BM/0JAS/9CQEv/QkBL/0JAS/9CQEv/QkBL/0NATP9GQ0/xMS83fwAAACkAAAATAAAAHgAAAD1HRFDyOjhB/wsLDP8LCgz/CwoM/wsKDP8LCgz/CwsM/wsLDP8LCwz/OjhB/0dEUPIAAAA9AAAAHgAAACcAAABNREJO/w8OEf8PDhH/Dw4R/w8OEf8PDhH/Dw4R/w8OEf8PDhH/Dw4R/w8OEf9EQk7/AAAATQAAACcAAAAsAAAAWEZCT/8UExb/ExIW/xMSFv8UExb/ExIW/xQTFv8UExb/FBMW/xQTFv8TEhb/RkJP/wAAAFgAAAAsAAAAMgAAAF1HRVD/GBcb/xgXG/8YFxv/GBcb/xgXG/8YFxv/GBcb/xkYHP8YFxv/GBcb/0dFUP8AAABdAAAAMgAAADMAAABjSUZT/x0cIf8dHCH/HRwh/x0cIf8dHCH/HRwh/x0cIf8dHCH/HRwh/x0cIf9JRlP/AAAAYwAAADMAAAA2AAAAZkpHVP8iISf/IiEn/yIhJ/8iISf/IiEn/yIhJ/8iISf/IiEn/yIhJ/8iISf/SkdU/wAAAGYAAAA2AAAAOQAAAGlLSVX/JyYt/ycmLf8nJi3/JyYt/ycmLf8nJi3/JyYt/ygmLf8nJi3/KCYt/0tJVf8AAABpAAAAOQAAADgAAABsTkpY/y0rM/8tKzP/LSsz/y0rM/8tKzP/LSsz/y0rM/8tKzP/LSsz/y0rM/9OSlj/AAAAbAAAADgAAAA1AAAAZVBNWv8zMTr/MzE5/zMxOf8zMTn/MzE5/zMxOf8zMTn/MzE5/zMxOf8zMTr/UE1a/wAAAGUAAAA1AAAALQAAAFlVUl/8RUJN/zk3QP84N0D/OTdA/zg3QP84N0D/ODdA/zg3QP86N0H/RUJN/1VSYPwAAABZAAAALQAAACAAAABEPTpFtFZSYP1STlz/UU5b/1FOW/9RTlv/UU5b/1FOW/9RTlv/Uk5c/1ZSYP09OkW0AAAARAAAACAAAAAUAAAAKAAAAEUAAABdAAAAbgAAAHkAAAB6AAAAfAAAAHwAAAB6AAAAeQAAAG4AAABdAAAARQAAACgAAAAUAAAACAAAABQAAAAhAAAAMAAAADoAAAA/AAAAQwAAAEMAAABDAAAAQwAAAD8AAAA6AAAAMAAAACEAAAAUAAAACA=="), "format": "RGBA8", @@ -1209,7 +1209,7 @@ data = { } [sub_resource type="ImageTexture" id="65"] -image = SubResource("Image_h4ote") +image = SubResource("Image_cg8le") [sub_resource type="StyleBoxTexture" id="66"] content_margin_left = 6.0 @@ -1223,7 +1223,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_qp6as"] +[sub_resource type="Image" id="Image_tpkot"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAADf39+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAA4ODg/9/f34gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAODg4P/g4OD/39/fiAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAADg4OD/4ODg/+Dg4P/f39+IAAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -1233,9 +1233,9 @@ data = { } [sub_resource type="ImageTexture" id="425"] -image = SubResource("Image_qp6as") +image = SubResource("Image_tpkot") -[sub_resource type="Image" id="Image_qluxn"] +[sub_resource type="Image" id="Image_8d7tv"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4MXg/+D/4P/g/+D/4P/gwwAAAAAAAAAAAAAAAAAAAADg/+D/4P/g/+D/4P/g/+D/AAAAAAAAAAAAAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P/hPAAAAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/gwwAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAOD/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P8AAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/wAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAOD/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P8AAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/wAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAODD4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/38IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1245,9 +1245,9 @@ data = { } [sub_resource type="ImageTexture" id="427"] -image = SubResource("Image_qluxn") +image = SubResource("Image_8d7tv") -[sub_resource type="Image" id="Image_qvnao"] +[sub_resource type="Image" id="Image_bwfne"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3hfgz+DO3hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3Bbh0uD+4P7g1+AZAAAAAAAAAAAAAAAAAAAAAAAA3Bbh0uD+4P7g/uD+4NfgGQAAAAAAAAAAAAAAAAAA3hfg1OD+4NHg/uD94dLg/uDU3hcAAAAAAAAAAAAAAADgzeD+4NDcFuD+4P3bFeDR4P7gzAAAAAAAAAAAAAAAAOC+4MXZFP8B4P7g/QAA2xXhyeDFAAAAAAAAAAAAAAAAAAAAAAAA/wHg/uD9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AeD+4P0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4MThwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1257,9 +1257,9 @@ data = { } [sub_resource type="ImageTexture" id="429"] -image = SubResource("Image_qvnao") +image = SubResource("Image_bwfne") -[sub_resource type="Image" id="Image_tpcjj"] +[sub_resource type="Image" id="Image_r6mai"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbB99u4Mfg8+Dz4MfebdsHAAAAAAAAAAAAAAAAAADjG+DP4P7g/uD+4P7g/uD+4M7jGwAAAAAAAAAAAADbB+DP4P7g4eBT2A3YDd9Q4Nfg/uDO2wcAAAAAAAAAAN9u4P7g4eMSAAAAAAAAAADhEeDh4P7ebAAAAAAAAAAA4Mjg/uBTAAAAAAAAAAAAAAAA3lXg/uDGAAAAAAAAAADg8uD+2A0AAAAAAAAAAAAAAADbDuD+4PEAAAAA4J7g/uD+4P7g/uCeAAAAAAAAAAAAAN0P4P7g8QAAAADoC+DU4P7g/uDU6AsAAAAAAAAAAAAA3lbg/uDGAAAAAAAA4Svg8+Dz4SsAAAAAAAAAAAAA5BPh4uD+3mwAAAAAAAAAAN9g32AAAAAAAAAAANsO3lbh4uD+4M7VBgAAAAAAAAAAAAAAAAAAAAAAAAAA4P7g/uD+4M7jGwAAAAAAAAAAAAAAAAAAAAAAAAAAAADg8uDF3mzVBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1269,9 +1269,9 @@ data = { } [sub_resource type="ImageTexture" id="431"] -image = SubResource("Image_tpcjj") +image = SubResource("Image_r6mai") -[sub_resource type="Image" id="Image_t5efg"] +[sub_resource type="Image" id="Image_ikos2"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/fCN7e3mzg4ODF4ODg9ODg4PPg4ODF3t7ebePj4wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3t7eLuDg4Njg4OD+4ODg/uDg4P7g4OD+4ODg/uDg4P7h4eHa4ODgMgAAAAAAAAAAAAAAAAAAAAAAAAAA3t7eL+Dg4PDg4OD+4ODg4eDg4FPY2NgN2NjYDd/f31Dg4ODX4ODg/uDg4PLh4eEzAAAAAAAAAAAAAAAA4+PjCeDg4Nzg4OD+4ODg4ePj4xIAAAAAAAAAAAAAAAAAAAAA4eHhEeDg4OHg4OD+4ODg3+bm5goAAAAAAAAAAN/f33fg4OD+4ODg/uDg4FMAAAAA4ODgS+Dg4OPh4eHi4ODgSQAAAADe3t5V4ODg/uDg4P7f3995AAAAAAAAAADh4eHa4ODg/uDg4P7Y2NgNAAAAAOHh4eLg4OD+4ODg/uDg4OEAAAAA29vbDuDg4P7g4OD+4eHh2gAAAAAAAAAA4ODg2+Dg4P7g4OD+2NjYDQAAAADh4eHi4ODg/uDg4P7g4ODhAAAAAN3d3Q/g4OD+4ODg/uDg4NsAAAAAAAAAAN7e3nzg4OD+4ODg/t/f31AAAAAA4ODgSeHh4eLg4ODh39/fSAAAAADe3t5W4ODg/uDg4P7g4OB7AAAAAAAAAADV1dUM4ODg4+Dg4P7g4ODX4eHhEQAAAAAAAAAAAAAAAAAAAADk5OQT4eHh4uDg4P7g4ODh1dXVDAAAAAAAAAAAAAAAAN/f3zjg4OD04ODg/uDg4OHe3t5V29vbDtvb2w7e3t5W4eHh4uDg4P7g4OD03t7eNgAAAAAAAAAAAAAAAAAAAAAAAAAA39/fN+Dg4N7g4OD+4ODg/uDg4P7g4OD+4ODg/uDg4P7g4ODd3t7eNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADm5uYK39/fcODg4MXg4ODz4ODg8+Dg4MXf399u5ubmCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -1281,7 +1281,7 @@ data = { } [sub_resource type="ImageTexture" id="433"] -image = SubResource("Image_t5efg") +image = SubResource("Image_ikos2") [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_g6bu4"] texture = ExtResource("1_ak8qr") @@ -1377,7 +1377,7 @@ bg_color = Color(0.490196, 0.490196, 0.490196, 1) corner_detail = 1 anti_aliasing = false -[sub_resource type="Image" id="Image_80meo"] +[sub_resource type="Image" id="Image_h6a0p"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN9Y3BYAAAAAAAAAAAAAAADcFt9YAAAAAAAAAAAAAN9Y4P7g09wWAAAAAAAAAADcFuDT4P7fWAAAAAAAAAAA2xXf0uD/4NfgGQAAAADbFd/S4P/g198YAAAAAAAAAAAAANsV39Lg/+DX4BnbFd/S4P/g198YAAAAAAAAAAAAAAAAAADbFd/S4P/h2uDW4P/g198YAAAAAAAAAAAAAAAAAAAAAAAA2xXf1uD/4P/g298YAAAAAAAAAAAAAAAAAAAAAAAAAADbFd/W4P/g/+Db4BkAAAAAAAAAAAAAAAAAAAAAAADbFd/S4P/f2uDW4P/g1+AZAAAAAAAAAAAAAAAAAADbFd/S4P/g198Y2xXf0uD/4NfgGQAAAAAAAAAAAADbFd/S4P/g198YAAAAANsV39Lg/+DX4BkAAAAAAAAAAN9Y4P7g09wWAAAAAAAAAADcFuDT4P7fWAAAAAAAAAAAAADfWNwWAAAAAAAAAAAAAAAA3BbfWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1387,7 +1387,7 @@ data = { } [sub_resource type="ImageTexture" id="49"] -image = SubResource("Image_80meo") +image = SubResource("Image_h6a0p") [sub_resource type="StyleBoxTexture" id="127"] content_margin_left = 4.0 @@ -2208,7 +2208,7 @@ texture_margin_right = 2.0 texture_margin_bottom = 2.0 region_rect = Rect2(72, 64, 8, 8) -[sub_resource type="Image" id="Image_5xvgd"] +[sub_resource type="Image" id="Image_8nh6x"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc5uqs87c4bPO3OGzztzhs87c4bPO3OGzztzhs3ObqrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2218,7 +2218,7 @@ data = { } [sub_resource type="ImageTexture" id="199"] -image = SubResource("Image_5xvgd") +image = SubResource("Image_8nh6x") [sub_resource type="StyleBoxTexture" id="200"] texture = SubResource("199") @@ -2242,7 +2242,7 @@ texture_margin_right = 2.0 texture_margin_bottom = 2.0 region_rect = Rect2(64, 64, 8, 8) -[sub_resource type="Image" id="Image_sr5xu"] +[sub_resource type="Image" id="Image_hk701"] data = { "data": PackedByteArray("/wD//wD//wD//wD/Z3qFZnqGaHuGaHuGaHuGaHuGZnqGZ3qF/wD//wD//wD//wD//wD//wD/Z3qFZnqGV1FRTEJATUNBTUNBTUNBTUNBTEJAV1FRZnqGZ3qF/wD//wD//wD/Z3qFVkxLTEJATURBTUNBTkRCTkRCTkRCTkRCTUNBTURBTEJAV1FRZ3qF/wD//wD/ZnqGTEJATEJATUNBT0VDT0VDT0VDT0VDT0VDT0VDTUNBTEJATEJAZ3uH/wD/Z3qFV1FRTEJATEJATkRCT0RDUEVEUkZEUkZEUUZFT0RDTkRCTEJATEJAV1FRZ3qFZnqGS0A/TEJATUNBT0RDUUdFUkhGU0hHU0hHUkhGUUdFT0RDTkRCTEJAS0E/Z3uHZ3uHS0E/TEJATUNBT0RDUUdFVElGVUpHVUlHVUpHUkhGUEVETUNBTEJAS0E/aHyIZ3uHSkA+S0E/TUNBT0VDUUdFVElGVUtJVk1LVElGU0lHUEZETkRCTEJAS0E/aHyIZ3uHSkE+S0E/TEJAT0VDUUdFVElGVUtJVUtJVUpHUkhGUEZETkRCTEJASkA+aHyIZ3uHSD48S0I/S0E/TkRCUEVEUUZFU0lHU0lHUkhGUEVETkRCTEJAS0E/ST89aHyIZ3uHRj08SD48SkA+TEJATkRCT0RDUEVEUEVEUEZET0VDTEJAS0A/ST89Rz07Z3uHZ3qFV1FRRz47SUA9S0E/TEJATUNBTkRCTkRCTUNBTEJAS0E/ST89Rz07V1FRaHuG/wD/Z3uHRj08Rz07SD48ST89SkA+S0E/S0E/S0A/SkA+SD48Rz47Rz07Z3uH/wD//wD/Z3qFV1FRRTw7Rz07Rz07Rz07SD48SD48Rz07Rz07Rz47Rj08V1FRZnqG/wD//wD//wD/Z3qFZ3uHV1FRRjw6Rjw6Rz47Rz47Rjw6Rjw6V1FRZ3uHaHuG/wD//wD//wD//wD//wD//wD/ZnqGZ3uHaHyIaHyIaHyIaHyIZ3uHaHuG/wD//wD//wD//wD/"), "format": "RGB8", @@ -2252,7 +2252,7 @@ data = { } [sub_resource type="ImageTexture" id="204"] -image = SubResource("Image_sr5xu") +image = SubResource("Image_hk701") [sub_resource type="StyleBoxTexture" id="205"] texture = SubResource("204") @@ -2365,7 +2365,7 @@ axis_stretch_horizontal = 2 axis_stretch_vertical = 2 region_rect = Rect2(80, 0, 16, 8) -[sub_resource type="Image" id="Image_ng5qk"] +[sub_resource type="Image" id="Image_ll126"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOFe4PTg/+D/4P/g/+D24WYAAAAAAAAAAAAA3yjf0uD/4P/g1+MtAAAAAAAAAAAAAAAAAADoC+Gf4Z/oCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), "format": "LumAlpha8", @@ -2375,9 +2375,9 @@ data = { } [sub_resource type="ImageTexture" id="306"] -image = SubResource("Image_ng5qk") +image = SubResource("Image_ll126") -[sub_resource type="Image" id="Image_52l3h"] +[sub_resource type="Image" id="Image_jfrub"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4P/g/+D/32AAAAAAAAAAAAAAAAAAAAAA4P/g/+D/4PThKwAAAAAAAAAAAAAAAAAA4P/g/+D/4P/g1egLAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+GfAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+GfAAAAAAAAAAAAAAAA4P/g/+D/4P/g1egLAAAAAAAAAAAAAAAA4P/g/+D/4PThKwAAAAAAAAAAAAAAAAAA4P/g/+D/32AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), "format": "LumAlpha8", @@ -2387,9 +2387,9 @@ data = { } [sub_resource type="ImageTexture" id="308"] -image = SubResource("Image_52l3h") +image = SubResource("Image_jfrub") -[sub_resource type="Image" id="Image_6mctu"] +[sub_resource type="Image" id="Image_d7wny"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAP9Z/xT/FP9ZAAAAAAAA/1n/FP8U/1kAAAAAAAD/Wf8U/xT/WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -2399,9 +2399,9 @@ data = { } [sub_resource type="ImageTexture" id="292"] -image = SubResource("Image_6mctu") +image = SubResource("Image_d7wny") -[sub_resource type="Image" id="Image_vvklf"] +[sub_resource type="Image" id="Image_jacs1"] data = { "data": PackedByteArray("FxYabx0cIe8gHiT3IR8l9yEfJfchHyX3IR8l9yAeJPcdHCHvFxYabx0cIfAkIin/KCYt/ygmLv8oJi7/KCYu/ygmLv8oJi3/JCIp/x0cIfAgHiT5KCYt/ysqMf8sKjL/LCoy/ywqMv8sKjL/Kyox/ygmLf8gHiT5IR8l9ygmLv8sKjL/LCoy/ywqMv8sKjL/LCoy/ywqMv8oJi7/IR8l9yEfJfcoJi7/LCoy/ywqMv8sKjL/LCoy/ywqMv8sKjL/KCYu/yEfJfchHyX3KCYu/ywqMv8sKjL/LCoy/ywqMv8sKjL/LCoy/ygmLv8hHyX3IR8l9ygmLv8sKjL/LCoy/ywqMv8sKjL/LCoy/ywqMv8oJi7/IR8l9yAeJPkoJi3/Kyox/ywqMv8sKjL/LCoy/ywqMv8rKjH/KCYt/yAeJPkdHCHwJCIp/ygmLf8oJi7/KCYu/ygmLv8oJi7/KCYt/yQiKf8dHCHxFxYabx0cIfAgHiT3IR8l9yEfJfchHyX3IR8l9yAeJPcdHCHuFxYabw=="), "format": "RGBA8", @@ -2411,7 +2411,7 @@ data = { } [sub_resource type="ImageTexture" id="39"] -image = SubResource("Image_vvklf") +image = SubResource("Image_jacs1") [sub_resource type="StyleBoxTexture" id="272"] content_margin_left = 0.0 @@ -2471,7 +2471,7 @@ axis_stretch_horizontal = 2 axis_stretch_vertical = 2 region_rect = Rect2(24, 40, 8, 8) -[sub_resource type="Image" id="Image_dmoyy"] +[sub_resource type="Image" id="Image_nk8py"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNS1kHTUtZJ01LWVBNS1lmTUtZaE1LWWhNS1loTUtZaE1LWWhNS1loWFZjarCvtYFNS1knTUtZBwAAAAAAAAAATUtZJzg3QLQgICT6Hh4i/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hx8j/4uLjf//////tra53U1LWScAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/0JCR//4+Pj//v7+/1dXWvtNS1lQAAAAAAAAAABNS1lmHh4i/yIiJ/8lJSr/JSUq/05OUv8mJiv/JSUq/yUlKv/Fxcf//////6qqq/8eHiL/TUtZZgAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/7i4uv//////X19j/yUlKv90dHf//////+3t7f8zMzj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv+NjY///////7i4uf81NTn/7e3t//////90dHf/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/Ojo+//v7+//6+vr/srK0///////Fxcf/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv+4uLr///////7+/v/4+Pj/RUVJ/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/YWFl////////////j4+S/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yYmK/9OTlL/Y2Nm/yoqL/8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZZh4eIv8iIif/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8iIif/Hh4i/01LWWYAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPtNS1lQAAAAAAAAAABNS1knODZAtCAgJPseHiL/Hx8j/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hh4i/yAgJfo4NkC0TUtZJwAAAAAAAAAATUtZB01LWSdNS1lQTUtZZk1LWWhNS1loTUtZaE1LWWhNS1loTUtZaE1LWWZNS1lQTUtZJ01LWQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2481,9 +2481,9 @@ data = { } [sub_resource type="ImageTexture" id="334"] -image = SubResource("Image_dmoyy") +image = SubResource("Image_nk8py") -[sub_resource type="Image" id="Image_on4hb"] +[sub_resource type="Image" id="Image_iduya"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNS1kHTUtZJ01LWVBNS1lmTUtZaE1LWWhNS1loTUtZaE1LWWhNS1loTUtZZk1LWVBNS1knTUtZBwAAAAAAAAAATUtZJzg3QLQgICT6Hh4i/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hx8j/x4eIv8gICT6ODdAtE1LWScAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPpNS1lQAAAAAAAAAABNS1lmHh4i/yIiJ/8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yIiJ/8eHiL/TUtZZgAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZZh4eIv8iIif/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8iIif/Hh4i/01LWWYAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPtNS1lQAAAAAAAAAABNS1knODZAtCAgJPseHiL/Hx8j/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hh4i/yAgJfo4NkC0TUtZJwAAAAAAAAAATUtZB01LWSdNS1lQTUtZZk1LWWhNS1loTUtZaE1LWWhNS1loTUtZaE1LWWZNS1lQTUtZJ01LWQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2493,7 +2493,7 @@ data = { } [sub_resource type="ImageTexture" id="336"] -image = SubResource("Image_on4hb") +image = SubResource("Image_iduya") [sub_resource type="AtlasTexture" id="359"] atlas = ExtResource("1_ak8qr") @@ -2581,7 +2581,7 @@ region = Rect2(96, 96, 16, 16) atlas = ExtResource("1_ak8qr") region = Rect2(96, 80, 16, 16) -[sub_resource type="Image" id="Image_6l4nu"] +[sub_resource type="Image" id="Image_a5v57"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCgnmNjY15mJiYeYGirQCMrLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFVfAE5OTjGCgoJ5jY2NeZiYmHlOTk4xTk5OMU5OTjE4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhVXwBOTk4cTk5OMU5OTjFOTk4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2591,7 +2591,7 @@ data = { } [sub_resource type="ImageTexture" id="111"] -image = SubResource("Image_6l4nu") +image = SubResource("Image_a5v57") [sub_resource type="StyleBoxTexture" id="4"] content_margin_left = 6.0 diff --git a/tools/configurator/scripts/TabSettings.gd b/tools/configurator/scripts/TabSettings.gd index 25d802fd..33080f7f 100644 --- a/tools/configurator/scripts/TabSettings.gd +++ b/tools/configurator/scripts/TabSettings.gd @@ -53,8 +53,12 @@ func cheevos(button: Button): http_request.request_completed.connect(self._on_request_completed) http_request.request(ra_url) responses = await wait_to_complete(http_request) + %cheevos_label.text = "LOGIN SUCCESS = %s" % str(responses[1]).to_upper() button.disabled = false + # need to create missing fields/keys too ie chhevos token duckstation? Possibly not But do need timestamp + #data_handler.read_change_regex(class_functions.config_folder_path + "retroarch/retroarch.cfg", "cheevos_username", "bob12") + data_handler.read_change_regex(class_functions.config_folder_path + "duckstation/settings.ini", "Username", "monkeyx", false) func wait_to_complete(http_request: HTTPRequest) -> Array: await http_request.request_completed diff --git a/tools/configurator/scripts/TabSystem.gd b/tools/configurator/scripts/TabSystem.gd index 733cbcd8..1742c673 100644 --- a/tools/configurator/scripts/TabSystem.gd +++ b/tools/configurator/scripts/TabSystem.gd @@ -46,7 +46,7 @@ func _connect_signals() -> void: %reset_button.button_up.connect(_on_Button_released.bind(%reset_progress)) %rpcs3_firmware_button.pressed.connect(_do_action.bind(%rpcs3_firmware_button)) %vita3k_firmware_button.pressed.connect(_do_action.bind(%vita3k_firmware_button)) - %retroarch_quick_resume_button.pressed.connect(class_functions.run_function.bind(%retroarch_quick_resume_button, "abxy_button_swap")) + %retroarch_quick_resume_button.pressed.connect(class_functions.run_function.bind(%retroarch_quick_resume_button, "quick_resume")) func standard_buttons(button: Button, buttons_gridcontainer: GridContainer, hidden_gridcontainer: GridContainer) -> void: current_system = app_data.emulators[button.text.to_lower()] diff --git a/tools/configurator/scripts/TabTools.gd b/tools/configurator/scripts/TabTools.gd index 3dd8a88a..8a8b9034 100644 --- a/tools/configurator/scripts/TabTools.gd +++ b/tools/configurator/scripts/TabTools.gd @@ -6,7 +6,7 @@ func _ready(): add_child(http_request) http_request.request_completed.connect(_on_request_completed) _connect_signals() - %backup_user_button.text += " - " + class_functions.rdhome + "/backup" + #%backup_user_button.text += " - " + class_functions.rdhome + "/backup" func _connect_signals() -> void: %check_conn_button.pressed.connect(check_internet_connection) diff --git a/tools/configurator/scripts/class_functions.gd b/tools/configurator/scripts/class_functions.gd index ee3ba226..73ffec96 100644 --- a/tools/configurator/scripts/class_functions.gd +++ b/tools/configurator/scripts/class_functions.gd @@ -7,6 +7,7 @@ const globals_sh_file_path: String = "/app/libexec/global.sh" const wrapper_command: String = "/app/tools/retrodeck_function_wrapper.sh" const config_file_path = "/var/config/retrodeck/retrodeck.cfg" const json_file_path = "/var/config/retrodeck/retrodeck.json" +var config_folder_path = "/var/config/" const esde_file_path = "/var/config/ES-DE/settings/es_settings.xml" var desktop_mode: String = OS.get_environment("XDG_CURRENT_DESKTOP") var rd_conf: String @@ -37,7 +38,6 @@ var font_select: int var font_tab_size: int = 35 var font_size: int = 20 var locale: String -enum preset_list {abxy_button_swap, ask_to_exit, borders, widescreen, rewind, cheevos, cheevos_hardcore} var button_list: Array = ["button_swap_button", "ask_to_exit_button", "border_button", "widescreen_button", "quick_rewind_button", "reset_retrodeck_button", "reset_all_emulators_button", "cheevos_button", "cheevos_hardcore_button"] signal update_global_signal var rekku_state: bool = false @@ -126,13 +126,13 @@ func execute_command(command: String, parameters: Array, console: bool) -> Dicti var result = {} var output = [] var exit_code = OS.execute(command, parameters, output, console) ## add if exit == 0 etc - result["output"] = array_to_string(output) + result["output"] = class_functions.array_to_string(output) result["exit_code"] = exit_code return result func run_command_in_thread(command: String, paramaters: Array, _console: bool) -> Dictionary: var thread = Thread.new() - thread.start(execute_command.bind(command,paramaters,false)) + thread.start(execute_command.bind(command,paramaters,true)) while thread.is_alive(): await get_tree().process_frame return thread.wait_to_finish() @@ -283,89 +283,92 @@ func run_function(button: Button, preset: String) -> void: func update_global(button: Button, preset: String, state: bool) -> void: #TODO pass state as an object in future version var result: Array + result.append("build_preset_config") var config_section:Dictionary = data_handler.get_elements_in_section(config_file_path, preset) match button.name: "quick_resume_button", "retroarch_quick_resume_button": quick_resume_status = state - result = data_handler.change_cfg_value(config_file_path, "retroarch", preset, str(state)) - change_global(result, "build_preset_config", button, str(quick_resume_status)) + result.append_array(data_handler.change_cfg_value(config_file_path, "retroarch", preset, str(state))) + change_global(result, button, str(quick_resume_status)) "update_notification_button": update_check = state - result = data_handler.change_cfg_value(config_file_path, preset, "options", str(state)) - change_global(result, "build_preset_config", button, str(result)) + result.append_array(data_handler.change_cfg_value(config_file_path, preset, "options", str(state))) + change_global(result, button, str(result)) "sound_button": sound_effects = state - result = data_handler.change_cfg_value(config_file_path, preset, "options", str(state)) + result.append_array(data_handler.change_cfg_value(config_file_path, preset, "options", str(state))) logger("i", "Enabled: %s" % (button.name)) update_global_signal.emit([button.name]) "cheevos_connect_button": cheevos_token_state = str(state) - result = data_handler.change_cfg_value(config_file_path, preset, "options", str(state)) + result.append_array(data_handler.change_cfg_value(config_file_path, preset, "options", str(state))) logger("i", "Enabled: %s" % (button.name)) update_global_signal.emit([button.name]) "button_swap_button": if abxy_state != "mixed": abxy_state = str(state) - result = data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state)) - change_global(result, "build_preset_config", button, abxy_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state))) + change_global(result, button, abxy_state) "ask_to_exit_button": if ask_to_exit_state != "mixed": ask_to_exit_state = str(state) - result = data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state)) - change_global(result, "build_preset_config", button, ask_to_exit_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state))) + change_global(result, button, ask_to_exit_state) "border_button": if border_state != "mixed": border_state = str(state) - result = data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state)) - change_global(result, "build_preset_config", button, border_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state))) + change_global(result, button, border_state) if widescreen_state == "true" or widescreen_state == "mixed": config_section = data_handler.get_elements_in_section(config_file_path, "widescreen") widescreen_state = "false" - result = data_handler.change_all_cfg_values(config_file_path, config_section, "widescreen", widescreen_state) - change_global(result, "build_preset_config", button, widescreen_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, "widescreen", widescreen_state)) + change_global(result, button, widescreen_state) "widescreen_button": if widescreen_state != "mixed": widescreen_state = str(state) - result = data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state)) - change_global(result, "build_preset_config", button, widescreen_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state))) + change_global(result, button, widescreen_state) if border_state == "true" or border_state == "mixed": config_section = data_handler.get_elements_in_section(config_file_path, "borders") border_state = "false" - result = data_handler.change_all_cfg_values(config_file_path, config_section, "borders", border_state) - change_global(result, "build_preset_config", button, border_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, "borders", border_state)) + change_global(result, button, border_state) "quick_rewind_button": if quick_rewind_state != "mixed": quick_rewind_state = str(state) - result = data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state)) - change_global(result, "build_preset_config", button, quick_rewind_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state))) + change_global(result, button, quick_rewind_state) "cheevos_button": if cheevos_state != "mixed": cheevos_state = str(state) - result = data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state)) - change_global(result, "build_preset_config", button, cheevos_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state))) + change_global(result, button, cheevos_state) if cheevos_state == "false": cheevos_hardcore_state = "false" - result = data_handler.change_all_cfg_values(config_file_path, config_section, "cheevos_hardcore", class_functions.cheevos_hardcore_state) - change_global(result, "build_preset_config", button, cheevos_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, "cheevos_hardcore", class_functions.cheevos_hardcore_state)) + change_global(result, button, cheevos_hardcore_state) "cheevos_hardcore_button": if cheevos_hardcore_state != "mixed": cheevos_hardcore_state = str(state) - result = data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state)) - change_global(result, "build_preset_config", button, cheevos_hardcore_state) + result.append_array(data_handler.change_all_cfg_values(config_file_path, config_section, preset, str(state))) + change_global(result, button, cheevos_hardcore_state) -func change_global(parameters: Array, preset: String, button: Button, state: String) -> void: - print (parameters[1]) - match parameters[1]: - preset_list: - for system in parameters[0].keys(): - var command_parameter: Array = [preset, system, parameters[1]] - logger("d", "Change Global: %s System: %s Preset %s " % command_parameter) +func change_global(parameters: Array, button: Button, state: String) -> void: + #print (str(parameters)) + match parameters[2]: + "abxy_button_swap", "ask_to_exit", "borders", "widescreen", "rewind", "cheevos", "cheevos_hardcore": + for system in parameters[1].keys(): + var command_parameter: Array = [parameters[0],system, parameters[2]] + logger("d", "Change Global Multi: %s " % str(command_parameter)) var result: Dictionary = await run_thread_command(wrapper_command, command_parameter, false) + #var result = OS.execute_with_pipe(wrapper_command, command_parameter) logger("d", "Exit code: %s" % result["exit_code"]) _: - var command_parameter: Array = [preset, parameters] - logger("d", "Change Global: %s System: %s" % command_parameter) - var result: Dictionary = await run_thread_command(wrapper_command, command_parameter, false) + logger("d", "Change Global Single: %s" % str(parameters)) + var result: Dictionary = await run_thread_command(wrapper_command, parameters, false) + #var result = OS.execute_with_pipe(wrapper_command, parameter) + #var result = OS.create_process(wrapper_command, cparameter) logger("d", "Exit code: %s" % result["exit_code"]) parameters.append(button) parameters.append(state) @@ -430,9 +433,9 @@ func _do_complete(button: Button) ->void: "reset_retrodeck_button": var dir = DirAccess.open(class_functions.rd_conf.get_base_dir()) if dir is DirAccess: - dir.rename(class_functions.rd_conf,class_functions.rd_conf.get_base_dir() + "/retrodeck.bak") + dir.rename(class_functions.rd_conf, class_functions.rd_conf.get_base_dir() + "/retrodeck.bak") dir.remove(class_functions.lockfile) - class_functions.change_global(["reset", "retrodeck"], "prepare_component", button, "") + class_functions.change_global(["prepare_component", "reset", "retrodeck"], button, "") button.text = "RESETTING-NOW" await class_functions.wait(2.0) button.text = "CONFIGURATOR WILL NOW CLOSE" @@ -441,7 +444,7 @@ func _do_complete(button: Button) ->void: "reset_all_emulators_button": var tmp_txt = button.text button.text = "RESETTING-NOW" - class_functions.change_global(["reset", "all"], "prepare_component", button, "") + class_functions.change_global(["prepare_component", "reset", "all"], button, "") await class_functions.wait(2.0) button.text = "RESET COMPLETED" await class_functions.wait(3.0) diff --git a/tools/configurator/scripts/data_handler.gd b/tools/configurator/scripts/data_handler.gd index 6ee06acb..8b21b1cc 100644 --- a/tools/configurator/scripts/data_handler.gd +++ b/tools/configurator/scripts/data_handler.gd @@ -356,3 +356,36 @@ func get_elements_in_section(file_path: String, section: String) -> Dictionary: var value: String = parts[1].strip_edges() elements[key] = value return elements + +func read_change_regex(file_path: String, key: String, new_value: String, use_quotes: bool = true) -> String: + var file := FileAccess.open(file_path, FileAccess.READ_WRITE) + if file == null: + print("Error: Could not open the file - %s" % file_path) + return "" + var content := file.get_as_text() + file.close() + var pattern := "" + if use_quotes: + pattern = '%s\\s*=\\s*"(.*?)"' % key + else: + pattern = '%s\\s*=\\s*(.*)' % key # For keys without quotes + var regex := RegEx.new() + regex.compile(pattern) + var match := regex.search(content) + if match == null: + print("Key %s not found for match - %s" % [key, match]) + return "" + var current_value := match.get_string(1) + if new_value == current_value: + print (current_value) + return current_value + var updated_content := "" + if use_quotes: + updated_content = regex.sub(content, '%s = "%s"' % [key, new_value]) + else: + updated_content = regex.sub(content, '%s = %s' % [key, new_value]) + file = FileAccess.open(file_path, FileAccess.WRITE) + file.store_string(updated_content) + file.close() + print("File updated successfully") + return new_value diff --git a/tools/configurator/scripts/helper_text.gd b/tools/configurator/scripts/helper_text.gd index cae3828c..022642f5 100644 --- a/tools/configurator/scripts/helper_text.gd +++ b/tools/configurator/scripts/helper_text.gd @@ -13,9 +13,9 @@ func _on_focus_changed(selected_element:Control) -> void: %pop_rtl.text = selected_element.get_meta("rekku") elif selected_element != null and selected_element.has_meta("description") and class_functions.rekku_state == false: %pop_rtl.visible = true - var texta : String = selected_element.get_meta("description") as String - texta = texta.replace("\\n", "\n") - %pop_rtl.text = texta + var text_newline : String = selected_element.get_meta("description") as String + text_newline = text_newline.replace("\\n", "\n") + %pop_rtl.text = text_newline -func replace_newline(text: String) -> String: - return text.replace("\n", "\n") +#func replace_newline(text: String) -> String: + #return text.replace("\n", "\n") diff --git a/tools/configurator/scripts/main.gd b/tools/configurator/scripts/main.gd index 9277f679..a433a2b0 100644 --- a/tools/configurator/scripts/main.gd +++ b/tools/configurator/scripts/main.gd @@ -190,10 +190,10 @@ func _set_up_globals(state: Array) -> void: mixed_mode(%quick_rewind_button, class_functions.quick_rewind_state) mixed_mode(%cheevos_button, class_functions.cheevos_state) mixed_mode(%cheevos_hardcore_button, class_functions.cheevos_hardcore_state) - if class_functions.cheevos_state == "true": - %cheevos_enabled_container.visible = true - elif class_functions.cheevos_state == "false": - %cheevos_enabled_container.visible = false + #if class_functions.cheevos_state == "true": + #%cheevos_enabled_container.visible = true + #elif class_functions.cheevos_state == "false": + #%cheevos_enabled_container.visible = false func mixed_mode (button: Button, state: String) -> void: match [class_functions.button_list]: