diff --git a/tools/configurator/components/bios_check/bios_check.gd b/tools/configurator/components/bios_check/bios_check.gd index 88ccd97f..49274bb0 100644 --- a/tools/configurator/components/bios_check/bios_check.gd +++ b/tools/configurator/components/bios_check/bios_check.gd @@ -8,8 +8,10 @@ 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"] @onready var bios_type:int = get_tree().current_scene.bios_type +@onready var custom_theme: Theme = get_tree().current_scene.custom_theme func _ready(): + $".".theme = custom_theme var table := $Table if bios_type == 0: #Basic BIOS button pressed diff --git a/tools/configurator/components/logs_view/logs_popup_content.tscn b/tools/configurator/components/logs_view/logs_popup_content.tscn deleted file mode 100644 index f2bcd71a..00000000 --- a/tools/configurator/components/logs_view/logs_popup_content.tscn +++ /dev/null @@ -1,21 +0,0 @@ -[gd_scene format=3 uid="uid://b0ts52bsu7cpb"] - -[node name="PopupContent" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="RichTextLabel" type="RichTextLabel" parent="."] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -focus_mode = 2 -scroll_following = true -context_menu_enabled = true -selection_enabled = true diff --git a/tools/configurator/components/popup.gd b/tools/configurator/components/popup.gd index 3e6c35c2..55972713 100644 --- a/tools/configurator/components/popup.gd +++ b/tools/configurator/components/popup.gd @@ -2,10 +2,13 @@ extends Control var content = null #@onready var button_off = get_node(current_scene.%l1_button)# .current_scene.l1_button -@onready var lbhide: TextureButton = get_tree().current_scene.get_node("%l1_button") -@onready var rbhide: TextureButton = get_tree().current_scene.get_node("%r1_button") +@onready var lbhide: Panel = get_tree().current_scene.get_node("%l1_box") +@onready var rbhide: Panel = get_tree().current_scene.get_node("%r1_box") +@onready var bios_type:int = get_tree().current_scene.bios_type +@onready var custom_theme: Theme = get_tree().current_scene.custom_theme func _ready(): + $".".theme = custom_theme lbhide.visible=false rbhide.visible=false # TODO this alowes copy and paste from RTB in logs? @@ -24,6 +27,6 @@ func set_content(new_content): func set_title(new_title): $Panel/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/Label.text = new_title func set_display_text(new_display_text): - $Panel/MarginContainer/VBoxContainer/ContentContainer/MarginContainer/RichTextLabel.text=new_display_text + $Panel/MarginContainer/VBoxContainer/ContentContainer/MarginContainer/LineEdit.text=new_display_text func _on_back_pressed(): queue_free() diff --git a/tools/configurator/components/popup.tscn b/tools/configurator/components/popup.tscn index a5810685..49525ba6 100644 --- a/tools/configurator/components/popup.tscn +++ b/tools/configurator/components/popup.tscn @@ -68,11 +68,7 @@ theme_override_constants/margin_top = 6 theme_override_constants/margin_right = 10 theme_override_constants/margin_bottom = 6 -[node name="RichTextLabel" type="RichTextLabel" parent="Panel/MarginContainer/VBoxContainer/ContentContainer/MarginContainer"] +[node name="LineEdit" type="TextEdit" parent="Panel/MarginContainer/VBoxContainer/ContentContainer/MarginContainer"] layout_mode = 2 -focus_mode = 2 -scroll_following = true -context_menu_enabled = true -selection_enabled = true - -[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/BackButton" to="." method="_on_back_pressed"] +editable = false +shortcut_keys_enabled = false diff --git a/tools/configurator/locales/interface.csv b/tools/configurator/locales/interface.csv deleted file mode 100644 index 165749e5..00000000 --- a/tools/configurator/locales/interface.csv +++ /dev/null @@ -1,81 +0,0 @@ -keys,en,it,de,sv,ua,ja,zh -TK_SYSTEM,"System","Sistema","System","System","Cистема","システム","系统" -TK_GAME_SETTINGS,"Game Settings","Impostazioni di Gioco","Spieleinstellungen","Spelinställningar","Ігрові Налаштування","ゲーム設定","游戏设定" -TK_QRESUME,"Quick Resume","Quick Resume","Schnellfortsetzung","Snabb Återupptagning","Швидкий Запуск","クイックリジューム","快速恢复" -TK_ADVANCED,"Advanced","Avanzate","Erweitert","Avancerat","Розширені","アドバンスド","高级/进阶" -TK_REWIND,"Rewind","Riavvolgimento","Zurückspulen","Tillbakaspolning","Перемотка","巻き戻し","倒带" -TK_CONFIRMEXIT,"Quit Confirmation","Conferma per Uscire","Beenden Bestätigen","Avlutningsbekräftelse","Підтвердження Виходу","確認終了","退出确认" -TK_CHEATS,"Cheats","Trucchi","Cheats","Fusk","Чіти","チート","作弊" -TK_SOON,"(coming soon)","(in arrivo)","(bald verfügbar)","(kommer snart)","(незабаром)","(近日公開)","(即将到来)" -TK_GRAPHICS,"Graphics","Grafica","Grafik","Grafik","Графіка","グラフィック","画质" -TK_CONTROLS,"Controls","Controlli","Steuerung","Kontroller","Управління","コントロール","控制" -TK_TOOLS,"Tools","Strumenti","Werkzeuge","Verktyg","Інструменти","ツール","工具" -TK_NETWORK,"Network","Rete","Netzwerk","Nätverk","Мережа","ネットワーク","kai qi" -TK_TROUBLESHOOT,"Troubleshoot","Risoluzione Problemi","Fehlerbehebung","Felsökning","Несправності","トラブルシューティング","排错" -TK_TROUBLESHOOTLBL,"Troubleshoot","Risoluzione Problemi","Fehlerbehebung","Felsökning","Усунення Несправностей","トラブルシューティング","排错" -TK_CONFIGURATOR,"Configurator","Configurator","Configurator","Configurator","Конфігуратор","確認","设置" -TK_ABOUT,"About","Informazioni","Über","Om","Про Нас","アバウト","关于" -TK_DECORATIONS,"Decorations","Decorazioni","Dekorationen","Dekorationer","Декорації","装飾","装饰" -TK_BORDERS,"Borders","Bordi","Ränder","Ramar","Фони","ボーダー","边框" -TK_WSCREEN,"Widescreen","Widescreen","Breitbild","Bredbild","Широкий Екран","ワイドスクリーン","宽屏" -TK_SHADERS,"Shaders","Shader","Shaders","Shaders","Шейдери","シェーダ","着色器" -TK_EXTRA,"Extra","Extra","Extra","Extra","Додатково","エクストラ","额外" -TK_MODS,"Mods","Mod","Mods","Moddar","Модифікації","改造","游戏模组" -TK_TATE,"TATE Mode","TATE Mode","TATE-Mode","TATE Läge","Режим TATE","垂直スクリーンモード","垂屏模式" -TK_STEAMCONTEMP,"Steam: Controller Templates","Template dei Controller di Steam","Steam: Controller-Vorlagen","Steam: Kontroller Mallar","Steam: Шаблони Контролерів","Steam:コントローラーテンプレート","Steam:控制器模板" -TK_INSTALL,"Install","Installa","Installieren","Installera","Встановити","インストール","安装" -TK_BTNLAYOUT,"Button Layout","Layout Pulsanti","Tastenbelegung","Knapp Layout","Розташування Кнопок","ボタンのレイアウト","按键布局" -TK_BTNCLASSIC,"Classic","Classico","Klassik","Klassisk","Класичний","クラッシク","经典" -TK_BTNNINTENDO,"Nintendo","Nintendo","Nintendo","Nintendo","Nintendo","ニンテンドー","任天堂" -TK_HOTKEYSOUND,"Hotkey Activation Sound","Suono su Attivazione Hotkey","Hotkey Aktivierungssound","Hotkey Aktiveringsljud","Звук Гарячих Клавіш","ホットキー起動音","热键激活音效" -TK_SCAN,"Scan","Scansiona","Scan","Skanna","Сканувати","スキャン","扫描" -TK_PS3SCAN,"PlayStation 3 Games","Giochi PlayStation 3","PlayStation 3 Spiele","PlayStation 3 Spel","Ігри для PlayStation 3","プレステ3ゲーム","PlayStation3游戏" -TK_SCUMMVMSCAN,"ScummVM Games","Giochi ScummVM","ScummVM Spiele","ScummVM Spel","Ігри ScummVM","ScummVMゲーム","ScummVM游戏" -TK_MULTIFILE,"Multi-File Structure","Struttura Multi-File","Mehrfachdateistruktur","Flerfilsstruktur","Багатофайлова Структура","マルチファイル構造","多文件结构" -TK_3DSDECRYPT,"3DS Game Decrypter","Decrittatore Giochi 3DS","3DS Spielentcrypter","3DS Spelavkrypterare","Дешифратор Ігор 3DS","3DS ゲームデクリプタ","3DS游戏解密" -TK_BIOS,"BIOS","BIOS","BIOS","BIOS","BIOS","BIOS","BIOS" -TK_GENTOOLS,"General Tools","Strumenti Generali","Allgemeine Werkzeuge","Allmänt","Загальні Інструменти","一般的なツール","一般工具" -TK_EMUOPEN,"Open Emulator...","Apri Emulatore...","Öffne Emulator...","Öppna Emulator...","Відкрити Емулятор...","エミュレータを開く...","打开模拟器..." -TK_GRIDINSTALL,"Install RetroDECK Steam Grids","Installa le Steam Grids di RetroDECK","RetroDECK Steam Grids Installieren","Installera RetroDECK Steam Grids","Встановити RetroDECK Steam Grids","RetroDECK Steam Gridsをインストール","安装RetroDECK Steam Grids" -TK_PS3FWINSTALL,"Install PS3 Firmware","Installa il Firmware PS3","Installiere PS3 Firmware","Installera PS3 Firmware","Встановити Прошивку PS3","PS3ファームウェアをインストール","安装PS3固件" -TK_FAVSTEAM,"Show Favorites as Steam Games","Mostra Giochi Preferiti su Steam","Favoriten als Steam-Spiele anzeigen","Visa Favoriter som Spel i Steam","Показати Улюблені як Ігри в Steam","お気に入りを Steam ゲームとして表示","显示收藏夹为Steam游戏" -TK_FILETOOLS,"File Maniuplation","Manipolazione File","Datei Werkzeuge","Filhantering","Маніпуляції з Файлами","ファイル操作","文件操作" -TK_USBTOOL,"USB Transfer Tool","Strumento di Trasferimento USB","USB Transfer Tool","USB Överföringsverktyg","Інструмент для Передачі Даних USB","USB転送ツール","USB传输工具" -TK_BACKUPBTN,"Backup User Data","Backup Dati Utente","Benutzerdaten Sichern","Backup av Användardata","Резервне Копіювання Даних Користувача","ユーザデータバックアップ","备份用户数据" -TK_COMPRESSGAMES,"Compress Games","Comprimi Giochi","Spiele Komprimieren","Komprimera Spel","Стиснути Ігри","ゲームを圧縮","压缩游戏" -TK_MOVEFILES,"Move User Files","Sposta File Utente","Benutzerdateien Verschieben","Flytta Användarfiler","Перемістити Файли Користувача","ユーザーファイルを移動","移动用户文件" -TK_CHEEVOS,"Retro Achievements","Retro Achievements","Retro Achievements","Retro Achievements","Retro Achievements","レトロ実績","Retro成就" -TK_CHEEVOSUNAME,"Username:","Nome Utente:","Benutzername:","Användarnamn:","Ім'я користувача:","ユーザー名:","用户名:" -TK_CHEEVOSPWD,"Password:","Password:","Passwort:","Lösenord:","Пароль:","パスワード:","密码:" -TK_CHEEVOSHARDCORE,"Hardcore Mode","Modalità Hardcore","Hardcore Modus","Hardcore Läge","Хардкорний Режим","ハードコアモード","硬核模式" -TK_CHEEVOSTROPHYBTN,"Show Throphies","Mostra Trofei","Trophäen Anzeigen","Visa Troféer","Показати Трофеї","トロフィーを表示","显示奖杯" -TK_LOGIN,"Login","Login","Login","Logga In","Увійти","ログイン","登录" -TK_NETPLAY,"Netplay","Netplay","Netplay","Netplay","Netplay","ネットプレイ","网战" -TK_NETPLAYID,"Netplay ID:","ID Netplay:","Netplay ID:","Netplay ID:","Netplay ID:","ネットプレイID:","网战ID:" -TK_NETPLAYADDRESS,"Address:","Indirizzo:","Adresse:","Address:","Адреса:","アドレス:","地址:" -TK_NETPLAYCONNECT,"Connect","Connetti","Verbinden","Anslut","Підключитися","接続","连接" -TK_DATAMNG,"Data Management","Gestione Dati","Datenverwaltung","Datahantering","Управління Даними","データ管理","数据管理" -TK_SAVESSYNC,"Synchronize Saves","Sincronizzazione Salvataggi","Spielstände Synchronisieren","Synkronisera Sparfiler","Синхронізувати Збереження","保存データを同期","同步存档" -TK_FTPBTN,"Start sFTP Server","Avvia Server sFTP","Starte sFTP Server","Starta sFTP Server","Запустити Сервер sFTP","sFTPサーバーを起動","开启sFTP服务器" -TK_CHECKCONN,"Check Connection","Controllo Connessione","Verbindung Überprüfen","Kontrollera Anslutning","Перевірити Підключення","接続を確認","检查连接" -TK_LOGSBTN,"Show Logs","Mostra Log","Logs Anzeigen","Visa Loggar","Показати Логи","ログを表示","显示日志" -TK_RESET,"Reset","Reset","Reset","Återställ","Скинути","リセット","重置" -TK_RESETSINGLE,"Single Emulator...","Emulatore Singolo...","Einzelner Emulator...","En Emulator...","Один Емулятор...","単一エミュレータ...","单独模拟器..." -TK_RESETALL,"All Emulators","Tutti gli Emulatori","Alle Emulatoren","Alla Emulatorer","Всі Емулятори","全エミュレータ","所有模拟器" -TK_RESETFULL,"Full RetroDECK Reset","Reset RetroDECK Completo","Vollständiges Zurücksetzen von RetroDECK","Återställ Hela RetroDECK","Повне Скидання RetroDECK","RetroDECKを完全リセット","完全重置RetroDECK" -TK_UPDATENOTIF,"Update Notification","Notifica gli Aggiornamenti","Update-Benachrichtigung","Uppdaterings-notifikation","Сповіщення про Оновлення","アップデート通知","更新通知" -TK_EASTEREGGS,"Show Easter Eggs","Mostra Easter Eggs","Easter Eggs anzeigen","Visa Easter Eggs","Показувати Пасхальні Яйця","イースターエッグを表示","显示彩蛋" -TK_MULTIUSR,"Multi-User Mode","Modalità Multi-Utente","Multi-User Mode","Flerspelarläge","Багатокористувацький Режим","マルチユーザーモード","多用户模式" -TK_OFF,"Off","Off","Aus","Av","Вимк","オフ","关闭" -TK_STEAMUSR,"Steam Users","Utenti Steam","Steam Benutzer","Steam Användare","Користувачі Steam","Steamユーザー","Steam用户" -TK_CUSTOMUSR,"Custom Users","Utenti Personalizzati","Benutzerdefinierte Benutzer","Anpassade Användare","Кастомні Користувачі","カスタムユーザー","自定义用户" -TK_MUSIC,"Menu Music","Musica del Menu","Menu Hintergrundmusik","Meny Musik","Музика Меню","メニュー音楽","菜单音乐" -TK_ABOUTHEADER,"About RetroDECK","A Proposito di RetroDECK","Über RetroDECK","Om RetroDECK","Про RetroDECK","RetroDECKについて","关于RetroDECK" -TK_WEBSITE,"Website","Sito Web","Website","Hemsida","Веб-сайт","公式サイト","网站" -TK_CHANGELOG,"Version History","Storico Versioni","Versions History","Versionshistorik","Історія Версій","バージョン履歴","版本历史" -TK_WIKI,"Wiki","Wiki","Wiki","Wiki","Wiki","Wiki","维基" -TK_CREDITS,"Credits","Crediti","Credits","Tillskrivningar","Автори","クレジット","鸣谢" -TK_DONATE,"Donate","Donazione","Spenden","Donera","Пожертвувати","寄付","捐赠" -TK_CONTACTUS,"Reach Us","Contattaci","Kontakiere Uns","Kontakta Oss","Зв'язатися з Нами","連絡","联系我们" -TK_LICENSES,"Licenses","Licenze","Lizenzen","Licenser","Ліцензії","ライセンス","许可" -TK_ON,"On","On","An","På","Увімк","オン","开启" \ No newline at end of file diff --git a/tools/configurator/main.tscn b/tools/configurator/main.tscn index 9f9c0f41..27ee645d 100644 --- a/tools/configurator/main.tscn +++ b/tools/configurator/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=113 format=3 uid="uid://61f6m4r1mpan"] +[gd_scene load_steps=123 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"] @@ -14,8 +14,9 @@ [ext_resource type="Texture2D" uid="uid://dk856hwnwsuab" path="res://assets/icons/pixelitos/128/retroarch.png" id="4_xcuib"] [ext_resource type="Texture2D" uid="uid://cvr1eijddf6nv" path="res://assets/icons/banner/gamegear.png" id="5_4d7s7"] [ext_resource type="Texture2D" uid="uid://d2lm4mfx1gt86" path="res://assets/graphics/retrodeck_base_shake0.png" id="5_7rjbt"] +[ext_resource type="Texture2D" uid="uid://bns3nmvku2qhe" path="res://assets/icons/pixelitos/128/system-shutdown.png" id="5_ahd1x"] [ext_resource type="Texture2D" uid="uid://dv42c6hpi6tde" path="res://assets/icons/pixelitos/128/cs-tiling.png" id="5_box56"] -[ext_resource type="Script" path="res://helper_text.gd" id="5_cprkf"] +[ext_resource type="Script" path="res://scripts/helper_text.gd" id="5_cprkf"] [ext_resource type="Texture2D" uid="uid://dxdhjp18rgmr4" path="res://res/flags/united_kingdom_32.png" id="5_exkn2"] [ext_resource type="Texture2D" uid="uid://du8go5dyabmsl" path="res://assets/icons/banner/gb.png" id="5_ja8to"] [ext_resource type="StyleBox" uid="uid://ba3l3ja1jbqpx" path="res://assets/themes/emulators.tres" id="5_rjtkn"] @@ -99,8 +100,23 @@ [ext_resource type="Script" path="res://scripts/controller_guide.gd" id="68_ahvw4"] [ext_resource type="AudioStream" uid="uid://dhejvg02t5o35" path="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav" id="71_ghxvk"] [ext_resource type="Texture2D" uid="uid://dllymmym0335n" path="res://assets/icons/pixelitos/16/system-shutdown.png" id="87_1yqbe"] +[ext_resource type="Texture2D" uid="uid://26piw1lylfai" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0650.png" id="90_xkj8e"] +[ext_resource type="Texture2D" uid="uid://cj5p6oa4tbh3l" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0044.png" id="92_xpwgw"] [ext_resource type="Texture2D" uid="uid://brf74puvpnwsd" path="res://assets/graphics/retrodeck.png" id="93_f7ex4"] +[ext_resource type="Texture2D" uid="uid://ewsr5bqe7gcr" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0049.png" id="93_rdk5c"] [ext_resource type="Script" path="res://scripts/retrodeck.gd" id="94_8nlr1"] +[ext_resource type="Texture2D" uid="uid://bjw5uccsiprpo" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0045.png" id="94_ybo5b"] +[ext_resource type="Texture2D" uid="uid://da6e8m0kx265j" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0050.png" id="95_act8q"] +[ext_resource type="Texture2D" uid="uid://bfmu7t0xf5kdf" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0651.png" id="99_km4fg"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_co0k7"] +bg_color = Color(0.580392, 0.419608, 0.921569, 1) +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +border_color = Color(0.101961, 0.623529, 1, 1) +border_blend = true [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1161k"] bg_color = Color(0.101961, 0.623529, 1, 0.376471) @@ -180,14 +196,22 @@ animations = [{ "speed": 5.0 }] -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_rf0rc"] -texture = ExtResource("4_2tuu4") -texture_margin_left = 6.0 -texture_margin_top = 6.0 -texture_margin_right = 6.0 -texture_margin_bottom = 6.0 -region_rect = Rect2(0, 8, 16, 16) -modulate_color = Color(0.65098, 0.403922, 0.819608, 1) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4gcyr"] +bg_color = Color(0.455, 0.455, 0.455, 1) +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +border_color = Color(0.580392, 0.419608, 0.921569, 1) +border_blend = true +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gie3e"] +bg_color = Color(0.0509804, 0.0509804, 0.0509804, 1) +border_color = Color(0.298039, 0.298039, 0.298039, 1) [node name="Control" type="Control"] layout_mode = 3 @@ -212,30 +236,30 @@ grow_vertical = 2 [node name="SplitContainer" type="SplitContainer" parent="Background"] unique_name_in_owner = true layout_mode = 0 -offset_left = 1.0 -offset_top = 5.0 -offset_right = 1253.0 -offset_bottom = 724.0 +offset_top = 1.0 +offset_right = 1287.0 +offset_bottom = 725.0 +split_offset = 1280 [node name="MarginContainer" type="MarginContainer" parent="Background/SplitContainer"] layout_mode = 2 -size_flags_horizontal = 3 [node name="TabContainer" type="TabContainer" parent="Background/SplitContainer/MarginContainer"] unique_name_in_owner = true layout_mode = 2 +theme_override_styles/tab_selected = SubResource("StyleBoxFlat_co0k7") tab_alignment = 1 -current_tab = 0 +current_tab = 3 script = ExtResource("3_id6l4") [node name="Presets" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] unique_name_in_owner = true +visible = false layout_mode = 2 script = ExtResource("4_2jqfc") metadata/_tab_index = 0 [node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS"] -custom_minimum_size = Vector2(1200, 600) layout_mode = 2 follow_focus = true @@ -260,7 +284,32 @@ theme_override_constants/h_separation = 25 theme_override_constants/v_separation = 25 columns = 3 -[node name="borders_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +[node name="ask_to_exit_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(375, 125) +layout_mode = 2 +text = "ASK TO EXIT" +icon = ExtResource("5_ahd1x") +alignment = 1 +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true +metadata/description = "This function will prompt you to exit on quiting an emulator." + +[node name="ask_to_exit_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/ask_to_exit_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + +[node name="border_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +unique_name_in_owner = true custom_minimum_size = Vector2(375, 125) layout_mode = 2 text = "BORDERS" @@ -270,11 +319,22 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +[node name="border_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/border_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + [node name="button_swap_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] unique_name_in_owner = true custom_minimum_size = Vector2(375, 125) layout_mode = 2 -tooltip_text = "Change to Nintendo style button mappings." text = "BUTTON SWAP " icon = ExtResource("4_caaxx") @@ -283,57 +343,88 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +[node name="button_swap_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/button_swap_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + [node name="mods_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] custom_minimum_size = Vector2(375, 125) layout_mode = 2 +disabled = true text = "MODS" icon = ExtResource("5_vehlp") alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +metadata/description = "This feature is planned for a future release." [node name="quick_resume_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] unique_name_in_owner = true custom_minimum_size = Vector2(375, 125) layout_mode = 2 -tooltip_text = "RetroArch Cores/Systems only" text = "QUICK RESUME" icon = ExtResource("12_3jrmi") alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +metadata/description = "Testing 1,2,3 .." [node name="quick_rewind_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +unique_name_in_owner = true custom_minimum_size = Vector2(375, 125) layout_mode = 2 -text = "QUICK REWIND" +text = "REWIND" icon = ExtResource("11_c3qcy") alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +[node name="quick_rewind_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/quick_rewind_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + [node name="tate_mode_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] custom_minimum_size = Vector2(375, 125) layout_mode = 2 +disabled = true text = "TATE MODE" icon = ExtResource("10_jm3oh") alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +metadata/description = "This feature is planned for a future release." [node name="shaders_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] custom_minimum_size = Vector2(375, 125) layout_mode = 2 +disabled = true text = "SHADERS" icon = ExtResource("4_q6hd2") alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +metadata/description = "This feature is planned for a future release." [node name="widescreen_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] unique_name_in_owner = true @@ -346,33 +437,68 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="reset_retrodeck_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +[node name="widescreen_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/widescreen_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + +[node name="reset_retrodeck_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +unique_name_in_owner = true custom_minimum_size = Vector2(375, 125) layout_mode = 2 -text = "RESET RETROCECK" +text = "RESET RETRODECK" icon = ExtResource("11_g1uhn") -alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="reset_all_emulators" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +[node name="reset_retrodeck_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/reset_retrodeck_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + +[node name="reset_all_emulators_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer"] +unique_name_in_owner = true custom_minimum_size = Vector2(375, 125) layout_mode = 2 text = "RESET ALL EMULATORS" icon = ExtResource("45_qxd26") -alignment = 1 icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true +[node name="reset_all_emulators_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/globals_gridcontainer/reset_all_emulators_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + [node name="SYSTEM" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] visible = false layout_mode = 2 metadata/_tab_index = 1 [node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM"] -custom_minimum_size = Vector2(1200, 600) layout_mode = 2 follow_focus = true @@ -535,6 +661,7 @@ unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 size_flags_horizontal = 3 +action_mode = 0 text = "HELP" icon = ExtResource("46_feagl") expand_icon = true @@ -1078,7 +1205,6 @@ disabled = true text = "TK_MULTIFILE" [node name="SETTINGS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] -visible = false layout_mode = 2 script = ExtResource("54_bxhvn") metadata/_tab_index = 3 @@ -1090,8 +1216,6 @@ follow_focus = true [node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer"] layout_mode = 2 size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_constants/separation = 64 [node name="system_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer"] layout_mode = 2 @@ -1138,7 +1262,7 @@ layout_mode = 2 alignment = 1 expand_icon = true selected = 0 -item_count = 5 +item_count = 4 popup/item_0/text = "CHOOSE FONT" popup/item_0/icon = ExtResource("54_dah1j") popup/item_0/disabled = true @@ -1146,15 +1270,12 @@ popup/item_0/separator = true popup/item_1/text = "Default" popup/item_1/icon = ExtResource("55_wv2p5") popup/item_1/id = 1 -popup/item_2/text = "Retro" -popup/item_2/icon = ExtResource("56_ubqc2") +popup/item_2/text = "Modern" +popup/item_2/icon = ExtResource("55_wv2p5") popup/item_2/id = 2 -popup/item_3/text = "Modern" -popup/item_3/icon = ExtResource("55_wv2p5") -popup/item_3/id = 3 -popup/item_4/text = "OpenDyslexic3" -popup/item_4/icon = ExtResource("56_ubqc2") -popup/item_4/id = 4 +popup/item_3/text = "OpenDyslexic3" +popup/item_3/icon = ExtResource("56_ubqc2") +popup/item_3/id = 2 [node name="menu_music" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 @@ -1173,43 +1294,55 @@ icon = ExtResource("56_witym") alignment = 1 expand_icon = true -[node name="multi_user_option" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] +[node name="locale_option" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] +unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 -disabled = true alignment = 1 -expand_icon = true selected = 0 -item_count = 4 -popup/item_0/text = "TK_MULTIUSR" -popup/item_0/icon = ExtResource("57_7b0kp") -popup/item_0/separator = true -popup/item_1/text = "TK_CUSTOMUSR" -popup/item_1/icon = ExtResource("58_mntxv") +fit_to_longest_item = false +item_count = 7 +popup/item_0/text = "DEFAULT LANGUAGE" +popup/item_0/icon = ExtResource("5_exkn2") +popup/item_1/icon = ExtResource("6_fiylw") popup/item_1/id = 1 -popup/item_2/text = "TK_OFF" -popup/item_2/icon = ExtResource("58_mntxv") +popup/item_2/icon = ExtResource("7_qgxid") popup/item_2/id = 2 -popup/item_3/text = "TK_STEAMUSR" -popup/item_3/icon = ExtResource("58_mntxv") +popup/item_3/icon = ExtResource("8_lptln") popup/item_3/id = 3 +popup/item_4/icon = ExtResource("9_dp7oa") +popup/item_4/id = 4 +popup/item_5/icon = ExtResource("10_e8mt0") +popup/item_5/id = 5 +popup/item_6/icon = ExtResource("11_ri2fv") +popup/item_6/id = 6 [node name="cheevos_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] layout_mode = 2 -[node name="cheevos" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +[node name="cheevos_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +unique_name_in_owner = true custom_minimum_size = Vector2(0, 100) layout_mode = 2 -disabled = true text = "TK_CHEEVOS" -[node name="cheevos_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] -layout_mode = 2 +[node name="cheevos_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_button"] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false [node name="cheevos_login_container" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +unique_name_in_owner = true +visible = false layout_mode = 2 theme_override_constants/h_separation = 64 -columns = 2 [node name="cheevos_username_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] layout_mode = 2 @@ -1238,38 +1371,14 @@ placeholder_text = "password" secret = true secret_character = "*" -[node name="cheevos_advanced_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +[node name="cheevos_hardcore" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] layout_mode = 2 - -[node name="cheevos_advanced_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] -layout_mode = 2 -disabled = true -text = "TK_ADVANCED" - -[node name="cheevos_hardcore" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] -layout_mode = 2 -disabled = true text = "TK_CHEEVOSHARDCORE" -[node name="cheevos_loginout_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] -layout_mode = 2 -size_flags_horizontal = 8 -theme_override_constants/separation = 10 - -[node name="cheevos_trophies_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container/cheevos_loginout_container"] -layout_mode = 2 -disabled = true -text = "TK_CHEEVOSTROPHYBTN" - -[node name="cheevos_loginout_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container/cheevos_loginout_container"] -layout_mode = 2 -disabled = true -text = "TK_LOGIN" - [node name="netplay_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] layout_mode = 2 -[node name="netplay" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container"] +[node name="netplay" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container"] layout_mode = 2 text = "TK_NETPLAY" @@ -1315,16 +1424,30 @@ size_flags_vertical = 5 layout_mode = 2 text = "TK_NETPLAYCONNECT" +[node name="multi_user_option" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] +custom_minimum_size = Vector2(0, 100) +layout_mode = 2 +disabled = true +alignment = 1 +expand_icon = true +selected = 0 +item_count = 4 +popup/item_0/text = "TK_MULTIUSR" +popup/item_0/icon = ExtResource("57_7b0kp") +popup/item_0/separator = true +popup/item_1/text = "TK_CUSTOMUSR" +popup/item_1/icon = ExtResource("58_mntxv") +popup/item_1/id = 1 +popup/item_2/text = "TK_OFF" +popup/item_2/icon = ExtResource("58_mntxv") +popup/item_2/id = 2 +popup/item_3/text = "TK_STEAMUSR" +popup/item_3/icon = ExtResource("58_mntxv") +popup/item_3/id = 3 + [node name="data_mng_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] layout_mode = 2 -[node name="data_mng_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/data_mng_container"] -layout_mode = 2 -text = "TK_DATAMNG" - -[node name="data_mng_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/data_mng_container"] -layout_mode = 2 - [node name="saves_sync" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/data_mng_container"] layout_mode = 2 size_flags_horizontal = 3 @@ -1351,15 +1474,12 @@ layout_mode = 2 layout_mode = 2 alignment = 1 -[node name="rd_title" type="RichTextLabel" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"] +[node name="rd_title" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer/about_container"] unique_name_in_owner = true -clip_contents = false 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/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/rd_title"] custom_minimum_size = Vector2(128, 128) @@ -1374,14 +1494,11 @@ texture = ExtResource("1_axfei") expand_mode = 1 stretch_mode = 4 -[node name="about_header" type="RichTextLabel" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"] -clip_contents = false +[node name="about_header" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer/about_container"] custom_minimum_size = Vector2(0, 40) layout_mode = 2 size_flags_vertical = 3 -theme_override_font_sizes/normal_font_size = 23 -text = "TK_ABOUTHEADER" -scroll_active = false +text = "ABOUT RETRODECK" [node name="GridContainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"] unique_name_in_owner = true @@ -1394,7 +1511,6 @@ columns = 4 unique_name_in_owner = true visible = false layout_mode = 2 -focus_neighbor_right = NodePath("../GLOBALS") metadata/_tab_index = 5 [node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP"] @@ -1778,18 +1894,12 @@ animation = &"speech" autoplay = "speech" [node name="speach_bubble" type="Panel" parent="Background/SplitContainer/side_logo/rekku"] -layout_mode = 1 -anchors_preset = 7 -anchor_left = 0.5 -anchor_top = 1.0 -anchor_right = 0.5 -anchor_bottom = 1.0 -offset_left = 395.0 -offset_top = -830.0 -offset_right = 673.0 -offset_bottom = -402.0 -grow_horizontal = 2 -grow_vertical = 0 +unique_name_in_owner = true +layout_mode = 0 +offset_left = 371.0 +offset_top = -1120.0 +offset_right = 644.0 +offset_bottom = -786.0 theme_override_styles/panel = SubResource("StyleBoxTexture_rf0rc") [node name="helper_text" type="RichTextLabel" parent="Background/SplitContainer/side_logo/rekku"] @@ -1827,146 +1937,179 @@ expand_mode = 1 stream = ExtResource("3_xivj6") volume_db = -11.243 +[node name="pop_rtl" type="Label" parent="Background"] +unique_name_in_owner = true +visible = false +z_index = 2 +layout_mode = 2 +offset_left = 6.0 +offset_top = 703.0 +offset_right = 1271.0 +offset_bottom = 797.0 +theme_override_styles/normal = SubResource("StyleBoxFlat_4gcyr") +text = "TEST MESSAGE" + [node name="CanvasModulate" type="CanvasModulate" parent="."] visible = false position = Vector2(134, 151) color = Color(0.858824, 0.890196, 1, 1) -[node name="coltroller_guide" type="PanelContainer" parent="."] -layout_mode = 1 -anchors_preset = 12 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 5.0 -offset_top = -69.0 -offset_right = -337.0 -grow_horizontal = 2 -grow_vertical = 0 +[node name="controller_guide" type="PanelContainer" parent="."] +layout_mode = 0 +offset_left = 6.0 +offset_top = 731.0 +offset_right = 655.0 +offset_bottom = 793.0 +script = ExtResource("68_ahvw4") [node name="controller_guide_text" type="RichTextLabel" parent="coltroller_guide"] layout_mode = 2 -theme_override_colors/default_color = Color(1, 1, 1, 0.607843) -theme_override_font_sizes/normal_font_size = 23 -fit_content = true -scroll_active = false +theme_override_constants/separation = 10 [node name="a_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] unique_name_in_owner = true +custom_minimum_size = Vector2(38, 38) layout_mode = 2 -offset_left = 147.0 -offset_top = -5.0 -offset_right = 231.0 -offset_bottom = 54.0 +size_flags_vertical = 4 texture_normal = ExtResource("30_glnve") texture_pressed = ExtResource("31_j5ri1") stretch_mode = 0 -[node name="b_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] -unique_name_in_owner = true +[node name="Label" type="Label" parent="controller_guide/HBoxContainer"] layout_mode = 2 -offset_left = 314.0 -offset_top = -4.0 -offset_right = 398.0 -offset_bottom = 55.0 +theme_override_colors/font_color = Color(0.270222, 0.270222, 0.270222, 1) +text = "CONFIRM" + +[node name="b_button" type="TextureButton" parent="controller_guide/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(38, 38) +layout_mode = 2 +size_flags_vertical = 4 texture_normal = ExtResource("33_1ghye") texture_pressed = ExtResource("34_fum2b") stretch_mode = 0 -[node name="l1_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] -unique_name_in_owner = true +[node name="Label2" type="Label" parent="controller_guide/HBoxContainer"] layout_mode = 2 -offset_left = 7.0 -offset_top = -6.0 -offset_right = 91.0 -offset_bottom = 53.0 -texture_normal = ExtResource("38_prt7u") -texture_pressed = ExtResource("39_m4qgd") +theme_override_colors/font_color = Color(0.270588, 0.270588, 0.270588, 1) +text = "BACK" + +[node name="x_button" type="TextureButton" parent="controller_guide/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(38, 38) +layout_mode = 2 +size_flags_vertical = 4 +texture_normal = ExtResource("92_xpwgw") +texture_pressed = ExtResource("93_rdk5c") stretch_mode = 0 -[node name="r1_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] +[node name="Label5" type="Label" parent="controller_guide/HBoxContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.270588, 0.270588, 0.270588, 1) +text = "INFO" + +[node name="y_button" type="TextureButton" parent="controller_guide/HBoxContainer"] unique_name_in_owner = true -layout_mode = 0 -offset_left = 832.0 -offset_top = -8.0 -offset_right = 916.0 -offset_bottom = 51.0 -texture_normal = ExtResource("39_5ft88") -texture_pressed = ExtResource("40_pnuor") +custom_minimum_size = Vector2(38, 38) +layout_mode = 2 +size_flags_vertical = 4 +texture_normal = ExtResource("94_ybo5b") +texture_pressed = ExtResource("95_act8q") stretch_mode = 0 -[node name="exit_button" type="Button" parent="coltroller_guide/controller_guide_text"] +[node name="Label6" type="Label" parent="controller_guide/HBoxContainer"] layout_mode = 2 -offset_left = 567.0 -offset_top = -11.0 -offset_right = 651.0 -offset_bottom = 48.0 -grow_horizontal = 0 -scale = Vector2(1.4, 1.4) -icon = ExtResource("36_3qttl") -flat = true -icon_alignment = 1 -expand_icon = true +theme_override_colors/font_color = Color(0.270588, 0.270588, 0.270588, 1) +text = "REKKU" -[node name="locale_option" type="OptionButton" parent="coltroller_guide/controller_guide_text"] +[node name="a_button2" type="TextureButton" parent="controller_guide/HBoxContainer"] unique_name_in_owner = true -layout_mode = 1 -anchors_preset = 3 -anchor_left = 1.0 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -217.0 -offset_top = -46.0 -offset_right = -158.0 -offset_bottom = -17.0 -grow_horizontal = 0 -grow_vertical = 0 -selected = 0 -item_count = 7 -popup/item_0/icon = ExtResource("5_exkn2") -popup/item_1/icon = ExtResource("6_fiylw") -popup/item_1/id = 1 -popup/item_2/icon = ExtResource("7_qgxid") -popup/item_2/id = 2 -popup/item_3/icon = ExtResource("8_lptln") -popup/item_3/id = 3 -popup/item_4/icon = ExtResource("9_dp7oa") -popup/item_4/id = 4 -popup/item_5/icon = ExtResource("10_e8mt0") -popup/item_5/id = 5 -popup/item_6/icon = ExtResource("11_ri2fv") -popup/item_6/id = 6 +custom_minimum_size = Vector2(38, 38) +layout_mode = 2 +size_flags_vertical = 4 +texture_normal = ExtResource("90_xkj8e") +stretch_mode = 0 + +[node name="a_button3" type="TextureButton" parent="controller_guide/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(38, 38) +layout_mode = 2 +size_flags_vertical = 4 +texture_normal = ExtResource("99_km4fg") +stretch_mode = 0 + +[node name="Label4" type="Label" parent="controller_guide/HBoxContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.270588, 0.270588, 0.270588, 1) +text = "QUIT" [node name="exit_button" type="TextureButton" parent="controller_guide/HBoxContainer"] -custom_minimum_size = Vector2(45, 45) +custom_minimum_size = Vector2(35, 35) layout_mode = 2 +size_flags_vertical = 4 texture_normal = ExtResource("87_1yqbe") stretch_mode = 0 +[node name="Label7" type="Label" parent="controller_guide/HBoxContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.270588, 0.270588, 0.270588, 1) +text = "QUIT" + [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] unique_name_in_owner = true stream = ExtResource("71_ghxvk") volume_db = -5.0 -[node name="l1_button" type="TextureButton" parent="."] +[node name="l1_box" type="Panel" parent="."] unique_name_in_owner = true -layout_mode = 2 -offset_left = 14.0 -offset_top = 2.0 -offset_right = 105.0 -offset_bottom = 54.0 +layout_mode = 0 +offset_left = 15.0 +offset_top = 6.0 +offset_right = 75.0 +offset_bottom = 66.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_gie3e") + +[node name="l1_button" type="TextureButton" parent="l1_box"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -22.5 +offset_top = -22.5 +offset_right = 22.5 +offset_bottom = 22.5 +grow_horizontal = 2 +grow_vertical = 2 texture_normal = ExtResource("38_prt7u") texture_pressed = ExtResource("39_m4qgd") stretch_mode = 0 -[node name="r1_button" type="TextureButton" parent="."] +[node name="r1_box" type="Panel" parent="."] unique_name_in_owner = true layout_mode = 0 -offset_left = 1134.0 -offset_top = 1.0 -offset_right = 1225.0 -offset_bottom = 53.0 +offset_left = 1199.0 +offset_top = 6.0 +offset_right = 1259.0 +offset_bottom = 66.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_gie3e") + +[node name="r1_button" type="TextureButton" parent="r1_box"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -22.5 +offset_top = -22.5 +offset_right = 22.5 +offset_bottom = 22.5 +grow_horizontal = 2 +grow_vertical = 2 texture_normal = ExtResource("39_5ft88") texture_pressed = ExtResource("40_pnuor") stretch_mode = 0 @@ -1980,5 +2123,5 @@ 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="item_selected" from="controller_guide/HBoxContainer/locale_option" to="." method="_on_locale_selected"] +[connection signal="item_selected" from="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container/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 7d2efe67..39d36c73 100644 --- a/tools/configurator/project.godot +++ b/tools/configurator/project.godot @@ -64,6 +64,11 @@ rekku_hide={ , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":72,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +info={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null) +] +} quit={ "deadzone": 0.5, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) @@ -75,7 +80,6 @@ next_tab={ "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":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":0,"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={ @@ -83,7 +87,6 @@ previous_tab={ "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":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":0,"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={ @@ -111,10 +114,7 @@ quit2={ [internationalization] -locale/translation_remaps={ -"res://res/pixel_ui_theme/8x8_ui_elements.png": PackedStringArray("res://res/pixel_ui_theme/8x8_ui_elements_de.png:de", "res://res/pixel_ui_theme/8x8_ui_elements_sv.png:sv"), -"res://res/pixel_ui_theme/8x8_ui_elements2x.png": PackedStringArray("res://res/pixel_ui_theme/8x8_ui_elements2x_de.png:de", "res://res/pixel_ui_theme/8x8_ui_elements2x_sv.png:sv") -} +locale/translation_remaps={} [rendering] diff --git a/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres b/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres index 1687a867..ff37252d 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_nu6pr"] +[sub_resource type="Image" id="Image_cx80n"] 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_nu6pr") +image = SubResource("Image_cx80n") -[sub_resource type="Image" id="Image_g63b3"] +[sub_resource type="Image" id="Image_o7ypa"] 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_g63b3") +image = SubResource("Image_o7ypa") [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_asfoq"] +[sub_resource type="Image" id="Image_1mjn7"] 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_asfoq") +image = SubResource("Image_1mjn7") [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_ki6gy"] +[sub_resource type="Image" id="Image_nx1w6"] 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_ki6gy") +image = SubResource("Image_nx1w6") [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_jvn7o"] +[sub_resource type="Image" id="Image_645t5"] 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_jvn7o") +image = SubResource("Image_645t5") [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_jy5tk"] +[sub_resource type="Image" id="Image_6cwok"] 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_jy5tk") +image = SubResource("Image_6cwok") [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_jc3ub"] +[sub_resource type="Image" id="Image_yq8x5"] 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_jc3ub") +image = SubResource("Image_yq8x5") -[sub_resource type="Image" id="Image_un5by"] +[sub_resource type="Image" id="Image_osx3u"] 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_un5by") +image = SubResource("Image_osx3u") -[sub_resource type="Image" id="Image_dcqu5"] +[sub_resource type="Image" id="Image_e358d"] 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_dcqu5") +image = SubResource("Image_e358d") -[sub_resource type="Image" id="Image_65nnb"] +[sub_resource type="Image" id="Image_sc2ny"] 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_65nnb") +image = SubResource("Image_sc2ny") -[sub_resource type="Image" id="Image_gyvu3"] +[sub_resource type="Image" id="Image_f4p5c"] 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_gyvu3") +image = SubResource("Image_f4p5c") [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_el5uk"] +[sub_resource type="Image" id="Image_4no34"] 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_el5uk") +image = SubResource("Image_4no34") [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_dpyi6"] +[sub_resource type="Image" id="Image_81fer"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc5uqs87c4bPO3OGzztzhs87c4bPO3OGzztzhs3ObqrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2218,7 +2218,7 @@ data = { } [sub_resource type="ImageTexture" id="199"] -image = SubResource("Image_dpyi6") +image = SubResource("Image_81fer") [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_hu6ex"] +[sub_resource type="Image" id="Image_o4hso"] 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_hu6ex") +image = SubResource("Image_o4hso") [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_t3urt"] +[sub_resource type="Image" id="Image_1giar"] 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_t3urt") +image = SubResource("Image_1giar") -[sub_resource type="Image" id="Image_oinpy"] +[sub_resource type="Image" id="Image_shov6"] 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_oinpy") +image = SubResource("Image_shov6") -[sub_resource type="Image" id="Image_84q7w"] +[sub_resource type="Image" id="Image_txvms"] 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_84q7w") +image = SubResource("Image_txvms") -[sub_resource type="Image" id="Image_ugbyv"] +[sub_resource type="Image" id="Image_nqxn3"] 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_ugbyv") +image = SubResource("Image_nqxn3") [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_8rm82"] +[sub_resource type="Image" id="Image_7ahc2"] 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_8rm82") +image = SubResource("Image_7ahc2") -[sub_resource type="Image" id="Image_mpaam"] +[sub_resource type="Image" id="Image_n6ur5"] 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_mpaam") +image = SubResource("Image_n6ur5") [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_flyey"] +[sub_resource type="Image" id="Image_iyjpi"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCgnmNjY15mJiYeYGirQCMrLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFVfAE5OTjGCgoJ5jY2NeZiYmHlOTk4xTk5OMU5OTjE4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhVXwBOTk4cTk5OMU5OTjFOTk4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2591,7 +2591,7 @@ data = { } [sub_resource type="ImageTexture" id="111"] -image = SubResource("Image_flyey") +image = SubResource("Image_iyjpi") [sub_resource type="StyleBoxTexture" id="4"] content_margin_left = 6.0 diff --git a/tools/configurator/scripts/Rekku.gd b/tools/configurator/scripts/Rekku.gd index 03ea2fe2..2a0c0e04 100644 --- a/tools/configurator/scripts/Rekku.gd +++ b/tools/configurator/scripts/Rekku.gd @@ -1,12 +1,15 @@ extends Control -func _input(event): - if event.is_action_pressed("rekku_hide"): - self.visible = !self.visible - %SplitContainer.split_offset=-300 - if Input.is_action_pressed("back_button"): - %SplitContainer.split_offset=0 - $".".visible=false - - +func _input(event): + if event.is_action_released("rekku_hide"): + #self.visible = !self.visible + if class_functions.rekku_state == false: + self.visible = true + class_functions.rekku_state = true + %SplitContainer.split_offset=925 + %pop_rtl.visible = false + elif event.is_action_released("rekku_hide") and class_functions.rekku_state == true: + class_functions.rekku_state = false + self.visible = false + %SplitContainer.split_offset=1280 diff --git a/tools/configurator/scripts/TabAbout.gd b/tools/configurator/scripts/TabAbout.gd index 98f752bf..7e036425 100644 --- a/tools/configurator/scripts/TabAbout.gd +++ b/tools/configurator/scripts/TabAbout.gd @@ -25,7 +25,7 @@ func _about_button_pressed(id: String, button: Button) -> void: var tmp_txt = button.text if class_functions.desktop_mode != "gamescope": class_functions.logger("i","Loading website for " + id) - class_functions.launch_help(button.editor_description) + class_functions.launch_help(button.get_meta("url")) else: button.text = "Help only in Desktop Mode" await class_functions.wait(3.0) @@ -42,8 +42,10 @@ func create_buttons() -> void: func _setup_button(button: Button, web_data: Link) -> void: button.text = web_data.name - button.tooltip_text = web_data.description + #button.tooltip_text = web_data.description button.icon = ResourceLoader.load(web_data.icon) - button.editor_description = web_data.url + #button.editor_description = web_data.url + button.set_meta("url", web_data.url) + button.set_meta("description", web_data.description) button.icon_alignment = HORIZONTAL_ALIGNMENT_LEFT button.vertical_icon_alignment = VERTICAL_ALIGNMENT_CENTER diff --git a/tools/configurator/scripts/TabContainer.gd b/tools/configurator/scripts/TabContainer.gd index 0a6cc8f0..20addfde 100644 --- a/tools/configurator/scripts/TabContainer.gd +++ b/tools/configurator/scripts/TabContainer.gd @@ -1,7 +1,7 @@ extends TabContainer var icon_width: int = 32 -@onready var tcount: int = get_tab_count()-1 +@onready var tcount: int = get_tab_count()-2 func _ready(): focusFirstFocusableChild() #grab focus on first element to enable controller focusing @@ -9,7 +9,24 @@ func _ready(): %TabContainer.add_theme_icon_override("decrement_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0763.png")) %TabContainer.add_theme_icon_override("increment",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png")) %TabContainer.add_theme_icon_override("increment_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0764.png")) +<<<<<<< HEAD set_tab_icon(0, ResourceLoader.load("res://assets/icons/pixelitos/128/applications-graphics.png")) +======= + if class_functions.font_select !=3: + %TabContainer.add_theme_font_size_override("font_size", class_functions.font_tab_size) + elif class_functions.font_select == 3: + %TabContainer.add_theme_font_size_override("font_size", 15) + else: + %TabContainer.add_theme_font_size_override("font_size", class_functions.font_tab_size) + + set_tab_title(0, " GLOBALS ") + set_tab_title(1, " SYSTEM ") + set_tab_title(2, " TOOLS ") + set_tab_title(3, " SETTINGS ") + set_tab_title(4, " ABOUT ") + set_tab_hidden(5, true) + set_tab_icon(0, ResourceLoader.load("res://assets/icons/pixelitos/128/map-globe.png")) +>>>>>>> be95a1bf935fae24a2ab447f99022a39ae7a896a set_tab_icon_max_width(0,icon_width) set_tab_icon(1, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-windows.png")) set_tab_icon_max_width(1,icon_width) @@ -22,17 +39,27 @@ func _ready(): connect_focus_signals(self) %volume_effects_slider.value = class_functions.volume_effects -func connect_focus_signals(node): +func connect_focus_signals(node): for child in node.get_children(): if child is Button: child.focus_entered.connect(_on_Button_focus_entered.bind(child)) + child.focus_exited.connect(_on_Button_focus_exited.bind()) elif child is Control: connect_focus_signals(child) +func _on_Button_focus_exited(): + %pop_rtl.visible = false + func _on_Button_focus_entered(button: Button): if button and class_functions.sound_effects: %AudioStreamPlayer2D.volume_db = class_functions.volume_effects %AudioStreamPlayer2D.play() + if button and class_functions.rekku_state == false and button.has_meta("description"): + %pop_rtl.visible = true + %pop_rtl.text = button.get_meta("description") + else: + %pop_rtl.visible = true + %pop_rtl.text = "Hey, there's no description" func _input(event): if (event.is_action_pressed("next_tab")): diff --git a/tools/configurator/scripts/TabGlobals.gd b/tools/configurator/scripts/TabGlobals.gd index 1806ced7..29f8dc47 100644 --- a/tools/configurator/scripts/TabGlobals.gd +++ b/tools/configurator/scripts/TabGlobals.gd @@ -1,11 +1,40 @@ extends MarginContainer -var button_swap: Array func _ready(): _connect_signals() +func _process(delta: float) -> void: + if class_functions.current_button != null: + update_progress(delta, class_functions.current_progress) + +func update_progress(delta: float, progress: ProgressBar) -> void: + if class_functions.press_time >= class_functions.PRESS_DURATION: + class_functions._do_complete(class_functions.current_button) + class_functions.is_state_pressed = false + #print ("Progress Bar: %s Button: %s" % [progress.name, current_button.name]) + elif class_functions.is_state_pressed and class_functions.current_state == "mixed": + class_functions.press_time += delta + progress.value = class_functions.press_time / class_functions.PRESS_DURATION * 100.0 + func _connect_signals(): - %quick_resume_button.pressed.connect(class_functions.run_function.bind(%quick_resume_button)) - %button_swap_button.pressed.connect(class_functions.run_function.bind(%button_swap_button)) - %widescreen_button.pressed.connect(class_functions.run_function.bind(%widescreen_button)) + %quick_resume_button.pressed.connect(class_functions.run_function.bind(%quick_resume_button, "quick_resume")) + %button_swap_button.button_down.connect(class_functions._do_action.bind(%button_swap_progress, %button_swap_button, class_functions.abxy_state)) + %button_swap_button.button_up.connect(class_functions._on_button_released.bind(%button_swap_progress)) + %button_swap_button.pressed.connect(class_functions.run_function.bind(%button_swap_button, "abxy_button_swap")) + %ask_to_exit_button.button_down.connect(class_functions._do_action.bind(%ask_to_exit_progress, %ask_to_exit_button, class_functions.ask_to_exit_state)) + %ask_to_exit_button.button_up.connect(class_functions._on_button_released.bind(%ask_to_exit_progress)) + %ask_to_exit_button.pressed.connect(class_functions.run_function.bind(%ask_to_exit_button, "ask_to_exit")) + %border_button.button_down.connect(class_functions._do_action.bind(%border_progress, %border_button, class_functions.border_state)) + %border_button.button_up.connect(class_functions._on_button_released.bind(%border_progress)) + %border_button.pressed.connect(class_functions.run_function.bind(%border_button, "borders")) + %widescreen_button.button_down.connect(class_functions._do_action.bind(%widescreen_progress, %widescreen_button, class_functions.widescreen_state)) + %widescreen_button.button_up.connect(class_functions._on_button_released.bind(%widescreen_progress)) + %widescreen_button.pressed.connect(class_functions.run_function.bind(%widescreen_button, "widescreen")) + %quick_rewind_button.button_down.connect(class_functions._do_action.bind(%quick_rewind_progress, %quick_rewind_button, class_functions.quick_rewind_state)) + %quick_rewind_button.button_up.connect(class_functions._on_button_released.bind(%quick_rewind_progress)) + %quick_rewind_button.pressed.connect(class_functions.run_function.bind(%quick_rewind_button, "rewind")) + %reset_retrodeck_button.button_down.connect(class_functions._do_action.bind(%reset_retrodeck_progress, %reset_retrodeck_button, "mixed")) + %reset_retrodeck_button.button_up.connect(class_functions._on_button_released.bind(%reset_retrodeck_progress)) + %reset_all_emulators_button.button_down.connect(class_functions._do_action.bind(%reset_all_emulators_progress, %reset_all_emulators_button, "mixed")) + %reset_all_emulators_button.button_up.connect(class_functions._on_button_released.bind(%reset_all_emulators_progress)) diff --git a/tools/configurator/scripts/TabSettings.gd b/tools/configurator/scripts/TabSettings.gd index 879d1529..1b0bc0f4 100644 --- a/tools/configurator/scripts/TabSettings.gd +++ b/tools/configurator/scripts/TabSettings.gd @@ -1,10 +1,40 @@ extends Control +var ra_url = "https://retroachievements.org/dorequest.php?r=login&u=monkeyx&p=9LJX7**mie*9e4" +var cheevos_token: String + func _ready(): + var http_request = HTTPRequest.new() + add_child(http_request) _connect_signals() + http_request.request_completed.connect(self._on_request_completed) + http_request.request(ra_url) func _connect_signals() -> void: - %sound_button.pressed.connect(class_functions.run_function.bind(%sound_button)) - %update_notification_button.pressed.connect(class_functions.run_function.bind(%update_notification_button)) - #%volume_effects_slider.changed.connect(class_functions.slider_function.bind(%volume_effects_slider)) + %sound_button.pressed.connect(class_functions.run_function.bind(%sound_button, "sound_effects")) + %update_notification_button.pressed.connect(class_functions.run_function.bind(%update_notification_button, "update_check")) %volume_effects_slider.drag_ended.connect(class_functions.slider_function.bind(%volume_effects_slider)) + #%cheevos_button.pressed.connect(cheevos.bind(%cheevos_button)) + %cheevos_button.button_down.connect(class_functions._do_action.bind(%cheevos_progress, %cheevos_button, class_functions.cheevos_state)) + %cheevos_button.button_up.connect(class_functions._on_button_released.bind(%cheevos_progress)) + %cheevos_button.pressed.connect(class_functions.run_function.bind(%cheevos_button, "cheevos")) + +func _on_request_completed(_result, response_code, _headers, body): + var response_text = JSON.parse_string(body.get_string_from_utf8()) + print("Response Code: ", response_code) + print("Response Body: ", response_text) + print("Response Token: ", response_text.Token) + #print (_result,_headers) + cheevos_token = response_text.Token + if response_code == 200: + print("Request successful!") + else: + print("Request failed with code: ", response_code) + +func cheevos(button: Button): + set_process_input(false) + $"../..".visible=false + await class_functions.run_thread_command(class_functions.wrapper_command,["change_preset_dialog", "cheevos"], false) + set_process_input(true) + $"../..".visible=true + print ("FIN?") diff --git a/tools/configurator/scripts/TabSystem.gd b/tools/configurator/scripts/TabSystem.gd index 52dc826d..5004abd4 100644 --- a/tools/configurator/scripts/TabSystem.gd +++ b/tools/configurator/scripts/TabSystem.gd @@ -23,6 +23,7 @@ func _process(delta: float) -> void: func _connect_signals() -> void: #TODO make for loops for each function linked to button function call + # Change to follow hoe TabGlobals Works %retroarch_button.pressed.connect(standard_buttons.bind(%retroarch_button,%system_gridcontainer, %action_gridcontainer)) %mame_button.pressed.connect(standard_buttons.bind(%mame_button,%system_gridcontainer, %action_gridcontainer)) %ruffle_button.pressed.connect(standard_buttons.bind(%ruffle_button,%system_gridcontainer, %action_gridcontainer)) @@ -45,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)) + %retroarch_quick_resume_button.pressed.connect(class_functions.run_function.bind(%retroarch_quick_resume_button, "abxy_button_swap")) func standard_buttons(button: Button, buttons_gridcontainer: GridContainer, hidden_gridcontainer: GridContainer) -> void: current_system = app_data.emulators[button.text.to_lower()] @@ -84,7 +85,7 @@ func _on_Button_released(progress: ProgressBar) -> void: progress.value = 0.0 func _do_action(button: Button) -> void: - var tmp_txt = button.text + var original_txt = button.text match [button.name, current_system.name]: ["help_button", current_system.name]: if class_functions.desktop_mode != "gamescope": @@ -93,7 +94,7 @@ func _do_action(button: Button) -> void: else: button.text = "Help only works in Desktop Mode" await class_functions.wait(3.0) - button.text = tmp_txt + button.text = original_txt ["launch_button", current_system.name]: class_functions.logger("i", "Launching " + current_system.name) var launch = class_functions.execute_command(current_system.launch,[], false) diff --git a/tools/configurator/scripts/ToolsTab.gd b/tools/configurator/scripts/ToolsTab.gd index f4551d2f..3dd8a88a 100644 --- a/tools/configurator/scripts/ToolsTab.gd +++ b/tools/configurator/scripts/ToolsTab.gd @@ -5,29 +5,33 @@ extends Control func _ready(): add_child(http_request) http_request.request_completed.connect(_on_request_completed) - #check_internet_connection() _connect_signals() %backup_user_button.text += " - " + class_functions.rdhome + "/backup" func _connect_signals() -> void: %check_conn_button.pressed.connect(check_internet_connection) - %backup_user_button.pressed.connect(run_function.bind(%backup_user_button)) + %backup_user_button.pressed.connect(run_function.bind(%backup_user_button, "Start User Backup")) -func run_function(button: Button) -> void: - var tmp_txt = button.text - class_functions.logger("d","Start User Backup") +func run_function(button: Button, message: String) -> void: + class_functions.logger("d",message) + match button.name: + "backup_user_button": + _run_backup(button) + +func _run_backup(button: Button) -> void: + var original_txt = button.text %progress_bar_backup.visible = true - %backup_user_button.text = "Backup Running" + button.text = "Backup Running" var parameters = ["backup_retrodeck_userdata"] var run_result = await class_functions.run_thread_command(class_functions.wrapper_command, parameters, true) if run_result["exit_code"] == 0: - %backup_user_button.text = "Backup Complete - " + class_functions.rdhome + "/backup" + button.text = "Backup Complete - " + class_functions.rdhome + "/backup" class_functions.logger("d","User Backup Completed") await class_functions.wait(3.0) - %backup_user_button.text = tmp_txt + button.text = original_txt %progress_bar_backup.visible = false else: - %backup_user_button.text = "Backup Failed" + button.text = "Backup Failed" class_functions.logger("e","User Backup Failed. " + run_result["exit_code"]) %progress_bar_backup.visible = false @@ -37,7 +41,6 @@ func check_internet_connection(): http_request.request("https://retrodeck.net/") func _on_request_completed(_result, response_code, _headers, _body): - #var style_box = StyleBoxFlat.new() if response_code == 200: class_functions.logger("i","Internet Connection Succesful") %check_conn_button.button_pressed = true diff --git a/tools/configurator/scripts/class_functions.gd b/tools/configurator/scripts/class_functions.gd index 1a2c2da1..9d84a28c 100644 --- a/tools/configurator/scripts/class_functions.gd +++ b/tools/configurator/scripts/class_functions.gd @@ -3,10 +3,14 @@ class_name ClassFunctions extends Control extends Control var log_result: Dictionary var log_parameters: Array +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" +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 +var lockfile: String var rdhome: String var roms_folder: String var saves_folder: String @@ -22,8 +26,26 @@ var title: String var quick_resume_status: bool var update_check: bool var abxy_state: String +var ask_to_exit_state: String +var border_state: String +var widescreen_state: String +var quick_rewind_state: String +var cheevos_state: String +var cheevos_hardcore_state: String 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"] signal update_global_signal +var rekku_state: bool = false +var press_time: float = 0.0 +var is_state_pressed: bool = false +var PRESS_DURATION: float = 3.0 +var current_button: Button = null +var current_progress: ProgressBar = null +var current_state: String = "" func _ready(): read_values_states() @@ -39,16 +61,25 @@ func read_values_states() -> void: states_folder = config["paths"]["states_folder"] bios_folder = config["paths"]["bios_folder"] rd_version = config["version"] + rd_conf = extract_text(globals_sh_file_path, "rd_conf") + lockfile = extract_text(globals_sh_file_path, "lockfile") + locale = extract_text(esde_file_path, "esde") gc_version = ProjectSettings.get_setting("application/config/version") title = "\n " + rd_version + "\nConfigurator\n " + gc_version quick_resume_status = config["quick_resume"]["retroarch"] update_check = config["options"]["update_check"] - multi_state("abxy_button_swap") + abxy_state = multi_state("abxy_button_swap", abxy_state) + ask_to_exit_state = multi_state("ask_to_exit", ask_to_exit_state) + border_state = multi_state("borders", border_state) + widescreen_state = multi_state("widescreen", widescreen_state) + quick_rewind_state = multi_state("rewind", quick_rewind_state) sound_effects = config["options"]["sound_effects"] volume_effects = int(config["options"]["volume_effects"]) font_select = int(config["options"]["font"]) + cheevos_state = multi_state("cheevos", cheevos_state) + cheevos_hardcore_state = multi_state("cheevos_hardcore", cheevos_hardcore_state) -func multi_state(section: String) -> void: +func multi_state(section: String, state: String) -> String: var config_section:Dictionary = data_handler.get_elements_in_section(config_file_path, section) var true_count: int = 0 var false_count: int = 0 @@ -58,11 +89,12 @@ func multi_state(section: String) -> void: else: false_count += 1 if true_count == config_section.size(): - abxy_state = "true" + state = "true" elif false_count == config_section.size(): - abxy_state = "false" + state = "false" else: - abxy_state = "mixed" + state = "mixed" + return state func logger(log_type: String, log_text: String) -> void: # Type of log messages: @@ -240,61 +272,162 @@ func slider_function(value: float, slide: HSlider) -> void: volume_effects = int(slide.value) data_handler.change_cfg_value(config_file_path, "volume_effects", "options", str(slide.value)) -func run_function(button: Button) -> void: +func run_function(button: Button, preset: String) -> void: if button.button_pressed: - enable_global(button) + update_global(button, preset, true) else: - disable_global(button) + update_global(button, preset, false) -func enable_global(button: Button) -> void: +func update_global(button: Button, preset: String, state: bool) -> void: + #TODO pass state as an object in future version var result: Array - var config_section:Dictionary = data_handler.get_elements_in_section(config_file_path, "abxy_button_swap") + 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 = true - update_global_signal.emit() - result = data_handler.change_cfg_value(config_file_path, "retroarch", "quick_resume", "true") - change_global(result, "build_preset_config") + 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)) "update_notification_button": - result = data_handler.change_cfg_value(config_file_path, "update_check", "options", "true") - change_global(result, "build_preset_config") + 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)) "sound_button": - sound_effects = true - update_global_signal.emit() - result = data_handler.change_cfg_value(config_file_path, "sound_effects", "options", "true") - logger("i", "Enabled: " % (button.name)) + sound_effects = state + result = 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 == "false": - abxy_state = "true" - result = data_handler.change_all_cfg_values(config_file_path, config_section, "abxy_button_swap", "true") - change_global(result, "build_preset_config") + 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) + "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) + "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) + 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) + "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) + 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) + "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) + "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, quick_rewind_state) + +func change_global(parameters: Array, preset: String, button: Button, state: String) -> void: + #print (parameters) + 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) + var result: Dictionary = await run_thread_command(wrapper_command, command_parameter, false) + 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", "Exit code: %s" % result["exit_code"]) + parameters.append(button) + parameters.append(state) + update_global_signal.emit(parameters) -func disable_global(button: Button) -> void: - var result: Array - var config_section:Dictionary = data_handler.get_elements_in_section(config_file_path, "abxy_button_swap") - match button.name: - "quick_resume_button", "retroarch_quick_resume_button": - quick_resume_status = false - update_global_signal.emit() - result = data_handler.change_cfg_value(config_file_path, "retroarch", "quick_resume", "false") - change_global(result, "build_preset_config") - "update_notification_button": - result = data_handler.change_cfg_value(config_file_path, "update_check", "options", "false") - change_global(result, "build_preset_config") - "sound_button": - sound_effects = false - update_global_signal.emit() - result = data_handler.change_cfg_value(config_file_path, "sound_effects", "options", "false") - logger("i", "Disabled: " % (button.name)) - "button_swap_button": - if abxy_state == "true": - abxy_state = "false" - result = data_handler.change_all_cfg_values(config_file_path, config_section, "abxy_button_swap", "false") - change_global(result, "build_preset_config") +func extract_text(file_path: String, extract: String) -> String: + var file = FileAccess.open(file_path, FileAccess.ModeFlags.READ) + var pattern: String + if file: + var regex = RegEx.new() + if extract != "esde": + pattern = extract + '="([^"]+)"' + else: + pattern = '' + regex.compile(pattern) + while not file.eof_reached(): + var line: String = file.get_line().strip_edges() + var result: RegExMatch = regex.search(line) + if result: + return result.get_string(1) + file.close() + else: + logger("e", "Could not open file: %s" % file_path) + return "" -func change_global(parameters: Array, preset: String) -> void: - 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) - var result: Dictionary = await run_thread_command(wrapper_command, command_parameter, false) - logger("d", "Exit code: %s" % result["exit_code"]) +func _on_button_released(progress: ProgressBar) -> void: + is_state_pressed = false + progress.visible = false + press_time = 0.0 + progress.value = 0.0 + current_button = null + current_progress = null + current_state == null + +func _do_action(progress: ProgressBar, button: Button, state: String) -> void: + match [class_functions.button_list]: + [class_functions.button_list]: + current_state = state + current_button = button + current_progress = progress + current_progress.visible = true + is_state_pressed = true + +func _do_complete(button: Button) ->void: + #TODO use object for state + if is_state_pressed and button == current_button: + match button.name: + "button_swap_button": + class_functions.abxy_state = "false" + "ask_to_exit_button": + class_functions.ask_to_exit_state = "false" + "border_button": + class_functions.border_state = "false" + "widescreen_button": + class_functions.widescreen_state = "false" + "quick_rewind_button": + class_functions.quick_rewind_state = "false" + "cheevos_button": + class_functions.cheevos_state = "false" + "cheevos_hardcore_button": + class_functions.cheevos_hardcore_state = "false" + "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.remove(class_functions.lockfile) + class_functions.change_global(["reset", "retrodeck"], "prepare_component", button, "") + button.text = "RESETTING-NOW" + await class_functions.wait(2.0) + button.text = "CONFIGURATOR WILL NOW CLOSE" + await class_functions.wait(1.0) + get_tree().quit() + "reset_all_emulators_button": + var tmp_txt = button.text + button.text = "RESETTING-NOW" + class_functions.change_global(["reset", "all"], "prepare_component", button, "") + await class_functions.wait(2.0) + button.text = "RESET COMPLETED" + await class_functions.wait(3.0) + button.text = tmp_txt + button.toggle_mode = true diff --git a/tools/configurator/scripts/data_handler.gd b/tools/configurator/scripts/data_handler.gd index ad24219f..642801a8 100644 --- a/tools/configurator/scripts/data_handler.gd +++ b/tools/configurator/scripts/data_handler.gd @@ -34,6 +34,12 @@ func load_base_data() -> AppData: var emulator = Emulator.new() emulator.name = emulator_data["name"] emulator.description = emulator_data["description"] +<<<<<<< HEAD +======= + #emulator.url = emulator_data["url"] + #emulator.system = emulator_data["system"] + emulator.launch = emulator_data["launch"] +>>>>>>> be95a1bf935fae24a2ab447f99022a39ae7a896a if emulator_data.has("properties"): for property_data in emulator_data["properties"]: print (emulator,"----",property_data) @@ -158,7 +164,6 @@ func save_base_data(app_dict: AppData): # was apP_data but gave warning file = FileAccess.open(data_file_path, FileAccess.WRITE) file.store_string(json_text) file.close() - print("Data appended successfully") # Function to modify an existing link func modify_link(key: String, new_name: String, new_url: String, new_description: String): @@ -293,21 +298,23 @@ func read_cfg_file(file_path: String) -> Array: func write_cfg_file(file_path: String, lines: Array, changes: Dictionary) -> void: var file: FileAccess = FileAccess.open(file_path, FileAccess.ModeFlags.WRITE) var current_section: String = "" - for line in lines: + var line_count: int = lines.size() + for i in line_count: + var line: String = lines[i] var trimmed_line: String = line.strip_edges() if trimmed_line.begins_with("[") and trimmed_line.ends_with("]"): - current_section = trimmed_line.trim_prefix("[").trim_suffix("]") + current_section = trimmed_line.trim_prefix("[").trim_suffix("]")# trimmed_line.trim_prefix("["].trim_suffix("]") file.store_line(line) elif "=" in trimmed_line and current_section in changes: var parts: Array = trimmed_line.split("=", false) - if parts.size() >= 2: + if parts.size() == 2: var key: String = parts[0].strip_edges() var original_value: String = parts[1].strip_edges() if key in changes[current_section]: var new_value: String = changes[current_section][key] if new_value != original_value: - file.store_line(key + "=" + new_value) - class_functions.logger("i", "Changed %s %s from Value: %s to Value: %s" % [key, current_section, original_value, new_value]) + file.store_line("%s=%s" % [key, new_value]) + class_functions.logger("i", "Changed %s in section [%s] from %s to %s" % [key, current_section, original_value, new_value]) else: file.store_line(line) else: @@ -316,17 +323,16 @@ func write_cfg_file(file_path: String, lines: Array, changes: Dictionary) -> voi file.store_line(line) else: file.store_line(line) + if i == line_count - 2: + break file.close() func change_cfg_value(file_path: String, system: String, section: String, new_value: String) -> Array: var lines: Array = read_cfg_file(file_path) var parameters: Array =[system, section] var changes: Dictionary = {} - if section in changes: - changes[section][system] = new_value - else: - changes[section] = {system: new_value} - class_functions.logger("i", "Change: System: %s Section %s New Value: %s" % [system, section, new_value]) + changes[section] = {system: new_value} + class_functions.logger("i", "Change: System: %s Section %s New Value: %s" % [system, section, new_value]) write_cfg_file(file_path, lines, changes) return parameters diff --git a/tools/configurator/helper_text.gd b/tools/configurator/scripts/helper_text.gd similarity index 72% rename from tools/configurator/helper_text.gd rename to tools/configurator/scripts/helper_text.gd index e4d92d63..d94060ef 100644 --- a/tools/configurator/helper_text.gd +++ b/tools/configurator/scripts/helper_text.gd @@ -10,5 +10,4 @@ func _on_focus_changed(selected_element:Control) -> void: if selected_element != null and selected_element.has_meta("description"): helper_text_node.text = selected_element.get_meta("description") else: - #helper_text_node.text = "Hey, there's no description" - helper_text_node.text = "That stupid Monkey almost deleted me.\n\n\nPlease save me!!!!!!!!" + helper_text_node.text = "Hey, there's no description" diff --git a/tools/configurator/scripts/main.gd b/tools/configurator/scripts/main.gd index 72871233..088606ec 100644 --- a/tools/configurator/scripts/main.gd +++ b/tools/configurator/scripts/main.gd @@ -14,13 +14,18 @@ var a_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts- var b_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0043.png") var l1_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0797.png") var r1_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png") +var style_box_original: StyleBox = preload("res://assets/themes/default_theme.tres::StyleBoxFlat_0ahfc") +var font_size: int = 20 func _ready(): _get_nodes() _connect_signals() _play_main_animations() - _set_up_globals() - %locale_option.selected = class_functions.map_locale_id(OS.get_locale_language()) + _set_up_globals([]) + custom_theme = get_tree().current_scene.custom_theme + $".".theme = custom_theme + if class_functions.locale == "automatic": + %locale_option.selected = class_functions.map_locale_id(OS.get_locale_language()) %rd_title.text += class_functions.title class_functions.logger("i","Started Godot configurator") #class_functions.display_json_data() @@ -82,15 +87,15 @@ func _load_log(index: int) -> void: 1: class_functions.logger("i","Loading RetroDeck log") log_content = class_functions.import_text_file(class_functions.rd_log_folder +"/retrodeck.log") - load_popup("RetroDeck Log", "res://components/logs_view/logs_popup_content.tscn", log_content) + load_popup("RetroDeck Log", "res://components/popup.tscn", log_content) 2: class_functions.logger("i","Loading ES-DE log") log_content = class_functions.import_text_file(class_functions.rd_log_folder +"/ES-DE/es_log.txt") - load_popup("ES-DE Log", "res://components/logs_view/logs_popup_content.tscn",log_content) + load_popup("ES-DE Log", "res://components/popup.tscn",log_content) 3: class_functions.logger("i","Loading RetroArch log") log_content = class_functions.import_text_file(class_functions.rd_log_folder +"/retroarch/logs/log.txt") - load_popup("Retroarch Log", "res://components/logs_view/logs_popup_content.tscn",log_content) + load_popup("Retroarch Log", "res://components/popup.tscn",log_content) func _play_main_animations() -> void: anim_logo.play() @@ -196,47 +201,71 @@ func _on_exit_button_pressed(): #$Background/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/data_mng_container/saves_sync.text = tr("TK_SAVESSYNC") + " " + tr("TK_SOON") #$Background/MarginContainer/TabContainer/TK_CONFIGURATOR/ScrollContainer/VBoxContainer/system_container/easter_eggs.text = tr("TK_EASTEREGGS") + " " + tr("TK_SOON") -func _set_up_globals() -> void: +func _set_up_globals(state: Array) -> void: + #TODO on initial run pass array date? + #print (state) %update_notification_button.button_pressed = class_functions.update_check - var quick_resume = class_functions.quick_resume_status - %quick_resume_button.button_pressed = quick_resume - %retroarch_quick_resume_button.button_pressed = quick_resume - var sound_effects = class_functions.sound_effects - %sound_button.button_pressed = sound_effects - %volume_effects_slider.visible = sound_effects - match class_functions.abxy_state: - "true": - %button_swap_button.button_pressed = true - "false": - %button_swap_button.button_pressed = false - _: - var style_box = StyleBoxFlat.new() - style_box.bg_color = Color(1, 0.54902, 0, 1) # Orange color - style_box.border_color = Color(0.102, 0.624, 1, 1) # Blue border - style_box.border_blend = true - style_box.corner_radius_top_left = 25 - style_box.corner_radius_top_right = 25 - style_box.corner_radius_bottom_right = 25 - style_box.corner_radius_bottom_left = 25 - style_box.border_width_left = 15 - style_box.border_width_top = 15 - style_box.border_width_right = 15 - style_box.border_width_bottom = 15 - %button_swap_button.add_theme_stylebox_override("normal", style_box) - %button_swap_button.toggle_mode = false + %quick_resume_button.button_pressed = class_functions.quick_resume_status + %retroarch_quick_resume_button.button_pressed = class_functions.quick_resume_status + %sound_button.button_pressed = class_functions.sound_effects + %volume_effects_slider.visible = class_functions.sound_effects + mixed_mode(%button_swap_button, class_functions.abxy_state) + mixed_mode(%ask_to_exit_button, class_functions.ask_to_exit_state) + mixed_mode(%border_button, class_functions.border_state) + mixed_mode(%widescreen_button, class_functions.widescreen_state) + mixed_mode(%quick_rewind_button, class_functions.quick_rewind_state) + mixed_mode(%cheevos_button, class_functions.cheevos_state) + if class_functions.cheevos_state == "true": + %cheevos_login_container.visible = true + else: + %cheevos_login_container.visible = false + +func mixed_mode (button: Button, state: String) -> void: + match [class_functions.button_list]: + [class_functions.button_list]: + if state == "true": + button.button_pressed = true + button.add_theme_stylebox_override("normal", style_box_original) + elif state == "false": + button.button_pressed = false + button.add_theme_stylebox_override("normal", style_box_original) + elif state == "mixed": + mixed_status(button) + +func mixed_status (button: Button) -> void: + button.button_pressed = false + button.toggle_mode = false + var style_box = StyleBoxFlat.new() + style_box.bg_color = Color(0.941, 0.502, 0, 1) + style_box.border_color = Color(0.102, 0.624, 1, 1) + style_box.border_blend = true + style_box.corner_radius_top_left = 25 + style_box.corner_radius_top_right = 25 + style_box.corner_radius_bottom_right = 25 + style_box.corner_radius_bottom_left = 25 + style_box.border_width_left = 15 + style_box.border_width_top = 15 + style_box.border_width_right = 15 + style_box.border_width_bottom = 15 + button.add_theme_stylebox_override("normal", style_box) func change_font(index: int) -> void: var font_file: FontFile match index: 1: - font_file = load("res://res/pixel_ui_theme/pixel-sans.otf") - 2: font_file = load("res://assets/fonts/munro/munro.ttf") - 3: + %TabContainer.add_theme_font_size_override("font_size", class_functions.font_tab_size) + font_size = 30 + 2: font_file = load("res://assets/fonts/akrobat/Akrobat-Regular.otf") - 4: - font_file = load("res://assets/fonts/OpenDyslexic3/OpenDyslexic3-Regular.ttf") + %TabContainer.add_theme_font_size_override("font_size", class_functions.font_tab_size) + font_size = 25 + 3: + font_file = load("res://assets/fonts/OpenDyslexic3/OpenDyslexic3-Regular.ttf") + %TabContainer.add_theme_font_size_override("font_size", 15) + font_size = 16 custom_theme = load("res://assets/themes/default_theme.tres") custom_theme.set_font("font", "Control", font_file) + custom_theme.default_font_size = font_size $".".theme = custom_theme data_handler.change_cfg_value(class_functions.config_file_path, "font", "options", str(index))