New version of features.json and Godot updates

This commit is contained in:
Rekku 2024-08-29 10:24:19 +01:00
commit ec211d0290
47 changed files with 2206 additions and 1379 deletions

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://l3bredurb11m"
path="res://.godot/imported/rekku_base.png-ba655e0b7ca5167750e3c33bad52b118.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_base.png"
dest_files=["res://.godot/imported/rekku_base.png-ba655e0b7ca5167750e3c33bad52b118.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvlncuql8igrm"
path="res://.godot/imported/rekku_eye_1.png-bdb05770012bbf8805a308be308f2f11.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_eye_1.png"
dest_files=["res://.godot/imported/rekku_eye_1.png-bdb05770012bbf8805a308be308f2f11.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bdrdu4nddkqjn"
path="res://.godot/imported/rekku_eye_2.png-470f058d31522c2d3d622d57668ea739.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_eye_2.png"
dest_files=["res://.godot/imported/rekku_eye_2.png-470f058d31522c2d3d622d57668ea739.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cb2hwhaq036mu"
path="res://.godot/imported/rekku_mouth_a.png-279dcb9a384b18dcc5f0e9b1fce89965.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_mouth_a.png"
dest_files=["res://.godot/imported/rekku_mouth_a.png-279dcb9a384b18dcc5f0e9b1fce89965.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dl2fd66fvn1an"
path="res://.godot/imported/rekku_mouth_i.png-66f20d9dcec19841a364e26d8f38c17a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_mouth_i.png"
dest_files=["res://.godot/imported/rekku_mouth_i.png-66f20d9dcec19841a364e26d8f38c17a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://3ktnkmuecxea"
path="res://.godot/imported/rekku_mouth_m.png-f85c73bab4824d3102d50150c4e5375e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_mouth_m.png"
dest_files=["res://.godot/imported/rekku_mouth_m.png-f85c73bab4824d3102d50150c4e5375e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d08ngewjvxkmn"
path="res://.godot/imported/rekku_mouth_o.png-72bff84aecbb9047648fb98563492453.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_mouth_o.png"
dest_files=["res://.godot/imported/rekku_mouth_o.png-72bff84aecbb9047648fb98563492453.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dieva7tuxjrvy"
path="res://.godot/imported/rekku_nomouth.png-6aea5248544dd97243fc5c179e0e2d58.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/rekku2/rekku_nomouth.png"
dest_files=["res://.godot/imported/rekku_nomouth.png-6aea5248544dd97243fc5c179e0e2d58.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dhf620jyq75t1"
path="res://.godot/imported/es-de.png-7133c76b0fc370d6d2c311241df36cf6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/es-de.png"
dest_files=["res://.godot/imported/es-de.png-7133c76b0fc370d6d2c311241df36cf6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ctm3f56t7jhiw"
path="res://.godot/imported/flycast.png-454d63296971d85691881883d8c379e3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/flycast.png"
dest_files=["res://.godot/imported/flycast.png-454d63296971d85691881883d8c379e3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://t4bq3t2l0rja"
path="res://.godot/imported/fuse.png-798b47a8862532036e29b84ce0746e43.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/fuse.png"
dest_files=["res://.godot/imported/fuse.png-798b47a8862532036e29b84ce0746e43.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjxqyxpxb8h8q"
path="res://.godot/imported/lime3ds.png-46636e55aca4b1efb87cc2bb6ef805bd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/lime3ds.png"
dest_files=["res://.godot/imported/lime3ds.png-46636e55aca4b1efb87cc2bb6ef805bd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://de3s3tkxffqk0"
path="res://.godot/imported/nestopia.png-e3a5ed0832cb977733e851f186fe9167.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/nestopia.png"
dest_files=["res://.godot/imported/nestopia.png-e3a5ed0832cb977733e851f186fe9167.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://f8c6tobon13p"
path="res://.godot/imported/portal2.png-8c359b0df7fa9dc3dad992debc6f16c3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/portal2.png"
dest_files=["res://.godot/imported/portal2.png-8c359b0df7fa9dc3dad992debc6f16c3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1 @@
portal2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cyqdlugy5lts5"
path="res://.godot/imported/snes9x.png-985444d2225cee74be2bbfe4fd683dbe.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/snes9x.png"
dest_files=["res://.godot/imported/snes9x.png-985444d2225cee74be2bbfe4fd683dbe.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -0,0 +1 @@
portal2.png

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ck226cpy48rw"
path="res://.godot/imported/steam_icon_620.png-7a9e73f3c8c9a5c04b15bb9b88f1fab3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/steam_icon_620.png"
dest_files=["res://.godot/imported/steam_icon_620.png-7a9e73f3c8c9a5c04b15bb9b88f1fab3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://2fp4cq1l0843"
path="res://.godot/imported/stella.png-e81484435d2c9330faaeb6dd19649c74.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/stella.png"
dest_files=["res://.godot/imported/stella.png-e81484435d2c9330faaeb6dd19649c74.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsctvdrl5okkn"
path="res://.godot/imported/zsnes.png-8880495aee27e317a73877d10d9f27e8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icons/pixelitos/128/zsnes.png"
dest_files=["res://.godot/imported/zsnes.png-8880495aee27e317a73877d10d9f27e8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -1,10 +1,8 @@
extends Control
var file := FileAccess
var bios_tempfile : String
var bios_result: Dictionary
var command: String = "../../tools/retrodeck_function_wrapper.sh"
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"]
@ -13,13 +11,6 @@ var BIOS_COLUMNS_EXPERT := ["BIOS File Name", "System", "Found", "Hash Match", "
func _ready():
$".".theme = custom_theme
#Check if XDG_RUNTIME_DIR is set and choose temp file location
if OS.has_environment("XDG_RUNTIME_DIR"):
#bios_tempfile = OS.get_environment("XDG_RUNTIME_DIR") + "/godot_temp/godot_bios_files_checked.tmp"
bios_tempfile = "/var/config/retrodeck/godot/godot_bios_files_checked.tmp"
else:
bios_tempfile = "/var/config/retrodeck/godot/godot_bios_files_checked.tmp"
var table := $Table
if bios_type == 0: #Basic BIOS button pressed
@ -35,30 +26,22 @@ func _ready():
table.hide_root = true
if bios_type == 0: #Basic BIOS button pressed
#OS.execute("/app/tools/retrodeck_function_wrapper.sh",["check_bios_files", "basic"])
#var parameters = ["log", "i", "Configurator: " + "check_bios_files"]
# classFunctions.execute_command(command, parameters, false)
var parameters = ["check_bios_files","basic"]
#class_functions.execute_command(command, parameters, false)
#threaded
await run_thread_command(command, parameters, console)
await run_thread_command(class_functions.wrapper_command, parameters, console)
else: #Assume advanced BIOS button pressed
var parameters = ["check_bios_files"]
class_functions.execute_command(command, parameters, false)
await run_thread_command(command, parameters, console)
#OS.execute("/app/tools/retrodeck_function_wrapper.sh",["check_bios_files"])
print (bios_result["output"])
if file.file_exists(bios_tempfile): #File to be removed after script is done
var bios_list = bios_result["output"]
var bios_lines = bios_list.split("\n")
for line in bios_lines:
var bios_line = line.split("^")
var table_line: TreeItem = table.create_item(root)
for i in bios_line.size():
table_line.set_text(i, bios_line[i])
if table_line.get_index() % 2 == 1:
table_line.set_custom_bg_color(i,Color(0.15, 0.15, 0.15, 1),false)
table_line.set_custom_color(i,Color(1,1,1,1))
class_functions.execute_command(class_functions.wrapper_command, parameters, false)
await run_thread_command(class_functions.wrapper_command, parameters, console)
var bios_list = bios_result["output"]
var bios_lines = bios_list.split("\n")
for line in bios_lines:
var bios_line = line.split("^")
var table_line: TreeItem = table.create_item(root)
for i in bios_line.size():
table_line.set_text(i, bios_line[i])
if table_line.get_index() % 2 == 1:
table_line.set_custom_bg_color(i,Color(0.15, 0.15, 0.15, 1),false)
table_line.set_custom_color(i,Color(1,1,1,1))
func run_thread_command(command: String, parameters: Array, console: bool) -> void:
bios_result = await class_functions.run_command_in_thread(command, parameters, console)

View file

@ -5,9 +5,6 @@ extends Control
var bios_type:int
var status_code_label: Label
var wrapper_command: String = "../../tools/retrodeck_function_wrapper.sh"
var log_text = "gdc_"
var log_parameters: Array = ["log", "i", log_text]
var log_results: Dictionary
var theme_option: OptionButton
#signal signal_theme_changed
@ -29,24 +26,24 @@ func _ready():
_connect_signals()
_play_main_animations()
%locale_option.selected = class_functions.map_locale_id(OS.get_locale_language())
app_data = data_handler.app_data
#%locale_option.selected = class_functions.map_locale_id(OS.get_locale_language())
#app_data = data_handler.app_data
#data_handler.add_emulator()
#data_handler.modify_emulator_test()
if app_data:
var website_data: Link = app_data.about_links["rd_web"]
print (website_data.name,"-",website_data.url,"-",website_data.description,"-",website_data.url)
#print (app_data.about_links["rd_web"]["name"])
var core_data: Core = app_data.cores["gambatte_libetro"]
print (core_data.name)
for property: CoreProperty in core_data.properties:
print("Cheevos: ", property.cheevos)
print("Cheevos Hardcore: ", property.cheevos_hardcore)
print("Quick Resume: ", property.quick_resume)
print("Rewind: ", property.rewind)
print("Borders: ", property.borders)
print("Widescreen: ", property.widescreen)
print("ABXY_button:", property.abxy_button)
#if app_data:
#var website_data: Link = app_data.about_links["rd_web"]
#print (website_data.name,"-",website_data.url,"-",website_data.description,"-",website_data.url)
##print (app_data.about_links["rd_web"]["name"])
#var core_data: Core = app_data.cores["gambatte_libetro"]
#print (core_data.name)
#for property: CoreProperty in core_data.properties:
#print("Cheevos: ", property.cheevos)
#print("Cheevos Hardcore: ", property.cheevos_hardcore)
#print("Quick Resume: ", property.quick_resume)
#print("Rewind: ", property.rewind)
#print("Borders: ", property.borders)
#print("Widescreen: ", property.widescreen)
#print("ABXY_button:", property.abxy_button)
#for key in app_data.emulators.keys():
#var emulator = app_data.emulators[key]
## Display the properties of each emulator
@ -72,8 +69,8 @@ func _ready():
#print("Borders: ", property.borders)
#print("Widescreen: ", property.widescreen)
#print("ABXY_button:", property.abxy_button)
else:
print ("No emulators")
#else:
#print ("No emulators")
var config_file_path = "/var/config/retrodeck/retrodeck.cfg"
var json_file_path = "/var/config/retrodeck/retrodeck.json"
@ -100,7 +97,6 @@ func _ready():
n.self_modulate.a = 0.5 #make it half transparent
combine_tkeys()
func _input(event):
if Input.is_action_pressed("quit1") and Input.is_action_pressed("quit2"):
get_tree().quit()
@ -120,6 +116,11 @@ func _input(event):
if event.is_action_pressed("quit"):
_exit()
func _exit():
get_tree().root.propagate_notification(NOTIFICATION_WM_CLOSE_REQUEST)
get_tree().quit()
func _get_nodes() -> void:
status_code_label = get_node("%status_code_label")
theme_option = get_node("%theme_optionbutton")
@ -138,17 +139,23 @@ func _connect_signals() -> void:
%decorations_button.pressed.connect(_hide_show_containers.bind(%decorations_button, %decorations_gridcontainer))
%systems_button.pressed.connect(_hide_show_containers.bind(%systems_button, %systems_gridcontainer))
%save_resume_button.pressed.connect(_hide_show_containers.bind(%decorations_button,%systems_gridcontainer))
func _load_log(index: int) -> void:
var log_content:String
match index:
1:
class_functions.log_parameters[2] = class_functions.log_text + "Loading RetroDeck log"
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
log_content = class_functions.import_text_file(rd_logs +"/retrodeck.log")
load_popup("RetroDeck Log", "res://components/logs_view/logs_popup_content.tscn", log_content)
2:
class_functions.log_parameters[2] = class_functions.log_text + "Loading ES-DE log"
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
log_content = class_functions.import_text_file(rd_logs +"/ES-DE/es_log.txt")
load_popup("ES-DE Log", "res://components/logs_view/logs_popup_content.tscn",log_content)
3:
class_functions.log_parameters[2] = class_functions.log_text + "Loading RetroArch log"
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
log_content = class_functions.import_text_file(rd_logs +"/retroarch/logs/log.txt")
load_popup("Retroarch Log", "res://components/logs_view/logs_popup_content.tscn",log_content)
@ -179,7 +186,6 @@ func _hide_show_buttons(button: Button, buttons_gridcontainer: GridContainer, hi
var child = hidden_gridcontainer.get_child(i)
if child is Button and child != button:
child.visible=false
%decorations_save.visible=true
elif button.toggle_mode == true and %borders_gridcontainer.visible == true:
print (button.name, "SAVE NOW? TODO") # TODO SHOW ALL AGAIN?
buttons_gridcontainer.visible = false
@ -189,28 +195,25 @@ func _hide_show_buttons(button: Button, buttons_gridcontainer: GridContainer, hi
if child is Button:
child.visible=true
child.toggle_mode = false
%decorations_save.visible=false
button.toggle_mode = true
"decorations_save":
if %decorations_save.visible == true and %borders_gridcontainer.visible == true:
%borders_gridcontainer.visible = false
for i in range(buttons_gridcontainer.get_child_count()):
var child = buttons_gridcontainer.get_child(i)
if child is Button:
child.visible=true
child.toggle_mode = false
%decorations_save.visible=false
func _conf_theme(index: int) -> void:
print (index)
match index:
1:
class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index)
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
custom_theme = preload("res://res/pixel_ui_theme/RetroDECKTheme.tres")
2:
class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index)
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
custom_theme = preload("res://assets/themes/retro_theme.tres")
3:
class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index)
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
custom_theme = preload("res://assets/themes/modern_theme.tres")
4:
class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index)
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
custom_theme = preload("res://assets/themes/accesible_theme.tres")
$".".theme = custom_theme
_play_main_animations()
@ -238,28 +241,24 @@ func _on_quickresume_advanced_pressed():
func _on_bios_button_pressed():
_play_main_animations()
bios_type = 0
log_parameters[2] = log_text + "Bios_Check"
log_results = class_functions.execute_command(wrapper_command, log_parameters, false)
class_functions.log_parameters[2] = class_functions.log_text + "Bios_Check"
log_results = class_functions.execute_command(class_functions.wrapper_command, class_functions.log_parameters, false)
load_popup("BIOS File Check", "res://components/bios_check/bios_popup_content.tscn","")
status_code_label.text = str(log_results["exit_code"])
func _on_bios_button_expert_pressed():
_play_main_animations()
bios_type = 1
log_parameters[2] = log_text + "Advanced_Bios_Check"
log_results = class_functions.execute_command(wrapper_command, log_parameters, false)
class_functions.log_parameters[2] = class_functions.log_text + "Advanced_Bios_Check"
log_results = class_functions.execute_command(class_functions.wrapper_command, class_functions.log_parameters, false)
load_popup("BIOS File Check", "res://components/bios_check/bios_popup_content.tscn","")
status_code_label.text = str(log_results["exit_code"])
func _on_exit_button_pressed():
_play_main_animations()
log_parameters[2] = log_text + "Exited"
log_results = class_functions.execute_command(wrapper_command, log_parameters, false)
_exit()
func _exit():
get_tree().root.propagate_notification(NOTIFICATION_WM_CLOSE_REQUEST)
get_tree().quit()
class_functions.log_parameters[2] = class_functions.log_text + "Exited"
log_results = class_functions.execute_command(class_functions.wrapper_command, class_functions.log_parameters, false)
class_functions._exit()
func _on_locale_selected(index):
match index:

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=77 format=3 uid="uid://61f6m4r1mpan"]
[gd_scene load_steps=91 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"]
@ -56,28 +56,38 @@
[ext_resource type="Texture2D" uid="uid://cvt2jky3bbjun" path="res://assets/icons/pixelitos/128/drive-removable-media.png" id="18_h2o3e"]
[ext_resource type="Texture2D" uid="uid://dyumvh0ixwrbl" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0042.png" id="30_glnve"]
[ext_resource type="Texture2D" uid="uid://cn11vcrybtor4" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0047.png" id="31_j5ri1"]
[ext_resource type="Texture2D" uid="uid://cor8ep0fkqm08" path="res://res/Rekku/base.png" id="32_omdu2"]
[ext_resource type="Texture2D" uid="uid://cc7ohmfxafe78" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0043.png" id="33_1ghye"]
[ext_resource type="Texture2D" uid="uid://cavtn1rljc5oe" path="res://res/Rekku/eyes-open.png" id="33_loftd"]
[ext_resource type="Texture2D" uid="uid://cs8lh31kh7jv1" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0048.png" id="34_fum2b"]
[ext_resource type="Texture2D" uid="uid://cv7nckloqhn5m" path="res://res/Rekku/blink1.png" id="34_liw3o"]
[ext_resource type="Texture2D" uid="uid://by0oj188x350g" path="res://res/Rekku/blink2.png" id="35_dxwop"]
[ext_resource type="Texture2D" uid="uid://cfa5mn3dsdvw6" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0729.png" id="36_3qttl"]
[ext_resource type="Texture2D" uid="uid://kx8eypf4ffvu" path="res://res/Rekku/mouth-base.png" id="36_qon8n"]
[ext_resource type="Texture2D" uid="uid://b6gl8sltbak7v" path="res://res/Rekku/mouth-O.png" id="37_2mdp6"]
[ext_resource type="Texture2D" uid="uid://chd6d8tx081hm" path="res://assets/icons/pixelitos/128/org.mamedev.MAME.png" id="36_dj81i"]
[ext_resource type="Script" path="res://scripts/system.gd" id="36_wv31h"]
[ext_resource type="Texture2D" uid="uid://10pyy05xqpr4" path="res://assets/icons/pixelitos/128/ruffle.png" id="37_7hhbn"]
[ext_resource type="Texture2D" uid="uid://fhxlwf7in0ke" path="res://assets/icons/pixelitos/128/net.pcsx2.PCSX2.png" id="38_44je8"]
[ext_resource type="Texture2D" uid="uid://dpi351mmxu7x6" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0797.png" id="38_prt7u"]
[ext_resource type="Texture2D" uid="uid://bum0ys5hf70g5" path="res://assets/icons/pixelitos/128/vita3k.png" id="38_vsjf2"]
[ext_resource type="Texture2D" uid="uid://ckyvec3wqx3t" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png" id="39_5ft88"]
[ext_resource type="Texture2D" uid="uid://n4hywdifr1q4" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0763.png" id="39_m4qgd"]
[ext_resource type="Texture2D" uid="uid://4rxej78gwu6" path="res://assets/icons/pixelitos/128/org.ryujinx.Ryujinx.png" id="40_7fdvq"]
[ext_resource type="Texture2D" uid="uid://bwcc0mjxxm0w1" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0764.png" id="40_pnuor"]
[ext_resource type="Texture2D" uid="uid://dr637stsnsg01" path="res://assets/icons/pixelitos/128/primehack.png" id="41_55e56"]
[ext_resource type="Texture2D" uid="uid://lopxvipv6asb" path="res://assets/icons/pixelitos/128/info.cemu.Cemu.png" id="42_n3n7j"]
[ext_resource type="Texture2D" uid="uid://bxng1bakpvyyr" path="res://assets/icons/pixelitos/128/app.xemu.xemu.png" id="43_ifi6j"]
[ext_resource type="Texture2D" uid="uid://dhf620jyq75t1" path="res://assets/icons/pixelitos/128/es-de.png" id="44_7lpj5"]
[ext_resource type="Texture2D" uid="uid://b6vndtbu4qduo" path="res://assets/icons/pixelitos/128/preferences-desktop-launch-feedback.png" id="45_qxd26"]
[ext_resource type="Texture2D" uid="uid://3sw7gtoiuab3" path="res://assets/icons/pixelitos/128/help-browser.png" id="46_feagl"]
[ext_resource type="Texture2D" uid="uid://l3bredurb11m" path="res://assets/graphics/rekku2/rekku_base.png" id="57_1n3u5"]
[ext_resource type="Texture2D" uid="uid://cvlncuql8igrm" path="res://assets/graphics/rekku2/rekku_eye_1.png" id="59_7lcu5"]
[ext_resource type="Texture2D" uid="uid://bdrdu4nddkqjn" path="res://assets/graphics/rekku2/rekku_eye_2.png" id="60_mbhg6"]
[ext_resource type="Texture2D" uid="uid://cb2hwhaq036mu" path="res://assets/graphics/rekku2/rekku_mouth_a.png" id="61_5vyvy"]
[ext_resource type="Texture2D" uid="uid://dl2fd66fvn1an" path="res://assets/graphics/rekku2/rekku_mouth_i.png" id="62_lji1k"]
[ext_resource type="Texture2D" uid="uid://3ktnkmuecxea" path="res://assets/graphics/rekku2/rekku_mouth_m.png" id="63_52v81"]
[ext_resource type="Texture2D" uid="uid://d08ngewjvxkmn" path="res://assets/graphics/rekku2/rekku_mouth_o.png" id="64_s8u0e"]
[ext_resource type="Texture2D" uid="uid://dieva7tuxjrvy" path="res://assets/graphics/rekku2/rekku_nomouth.png" id="65_kk8ba"]
[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"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_omewi"]
bg_color = Color(0.712505, 0, 0.175592, 1)
[sub_resource type="GDScript" id="GDScript_203iw"]
script/source = "extends MarginContainer
"
[sub_resource type="SpriteFrames" id="SpriteFrames_lhf2y"]
animations = [{
"frames": [{
@ -101,17 +111,23 @@ animations = [{
"speed": 12.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="SpriteFrames" id="SpriteFrames_k7pd1"]
animations = [{
"frames": [{
"duration": 40.0,
"texture": ExtResource("33_loftd")
"duration": 10.0,
"texture": ExtResource("59_7lcu5")
}, {
"duration": 0.15,
"texture": ExtResource("34_liw3o")
}, {
"duration": 0.15,
"texture": ExtResource("35_dxwop")
"duration": 1.0,
"texture": ExtResource("60_mbhg6")
}],
"loop": true,
"name": &"blink",
@ -121,40 +137,27 @@ animations = [{
[sub_resource type="SpriteFrames" id="SpriteFrames_l20mt"]
animations = [{
"frames": [{
"duration": 0.5,
"texture": ExtResource("36_qon8n")
"duration": 1.0,
"texture": ExtResource("63_52v81")
}, {
"duration": 1.0,
"texture": ExtResource("37_2mdp6")
"texture": ExtResource("62_lji1k")
}, {
"duration": 1.0,
"texture": ExtResource("36_qon8n")
"texture": ExtResource("61_5vyvy")
}, {
"duration": 1.0,
"texture": ExtResource("36_qon8n")
"texture": ExtResource("64_s8u0e")
}, {
"duration": 1.0,
"texture": ExtResource("37_2mdp6")
}, {
"duration": 1.0,
"texture": ExtResource("37_2mdp6")
}, {
"duration": 1.0,
"texture": ExtResource("36_qon8n")
"texture": ExtResource("65_kk8ba")
}],
"loop": true,
"name": &"speech",
"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="GDScript" id="GDScript_j7wyh"]
[node name="Control" type="Control"]
layout_mode = 3
@ -192,69 +195,70 @@ size_flags_horizontal = 3
unique_name_in_owner = true
layout_mode = 2
tab_alignment = 1
current_tab = 0
current_tab = 1
script = ExtResource("3_id6l4")
[node name="Gobals" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
[node name="GLOBALS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
metadata/_tab_index = 0
[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals"]
[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS"]
layout_mode = 2
follow_focus = true
[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="GridContainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer"]
[node name="GridContainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"]
layout_mode = 2
columns = 3
[node name="Widescreen6" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/GridContainer"]
[node name="Widescreen6" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"]
layout_mode = 2
text = "BUTTON SWAP
"
icon = ExtResource("4_q6hd2")
[node name="Widescreen2" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/GridContainer"]
[node name="Widescreen2" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"]
layout_mode = 2
text = "MODS"
icon = ExtResource("4_q6hd2")
[node name="Widescreen5" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/GridContainer"]
[node name="Widescreen5" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"]
layout_mode = 2
text = "QUICK RESUME"
icon = ExtResource("4_q6hd2")
[node name="decorations_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/GridContainer"]
[node name="decorations_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"]
layout_mode = 2
text = "BORDERS"
icon = ExtResource("4_jldgc")
[node name="Widescreen" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/GridContainer"]
[node name="Widescreen" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"]
layout_mode = 2
text = "SHADERS"
icon = ExtResource("4_q6hd2")
[node name="Widescreen3" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/GridContainer"]
[node name="Widescreen3" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"]
layout_mode = 2
text = "QUICK REWIND"
icon = ExtResource("4_q6hd2")
[node name="Widescreen4" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/GridContainer"]
[node name="Widescreen4" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"]
layout_mode = 2
text = "TATE MODE"
icon = ExtResource("4_q6hd2")
[node name="decorations_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer"]
[node name="decorations_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"]
visible = false
layout_mode = 2
columns = 5
[node name="wide_screen" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="wide_screen" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -266,7 +270,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="shaders" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="shaders" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -278,7 +282,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="mods" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="mods" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -290,7 +294,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="tate_mode" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="tate_mode" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -302,7 +306,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="borders_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="borders_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -314,7 +318,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="hotkey_sound" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="hotkey_sound" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -327,7 +331,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="button_layout" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="button_layout" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -340,7 +344,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="quick_resume" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="quick_resume" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -353,7 +357,7 @@ vertical_icon_alignment = 0
expand_icon = true
metadata/description = "This is a test description set to this element"
[node name="rewind" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="rewind" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -366,7 +370,7 @@ vertical_icon_alignment = 0
expand_icon = true
metadata/description = "This is another, very long and convoluted, description, that I put too much commas in to make in LONGER and more SOPHISTICATED. And I did it twice!!!This is another, very long and convoluted, description, that I put too much commas in to make in LONGER and more SOPHISTICATED."
[node name="quit_confirm" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="quit_confirm" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 0
@ -379,7 +383,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="cheats" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="cheats" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -392,7 +396,7 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="decorations_save" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
[node name="decorations_save" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
visible = false
custom_minimum_size = Vector2(125, 125)
layout_mode = 2
@ -405,13 +409,13 @@ icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[node name="borders_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer"]
[node name="borders_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"]
visible = false
layout_mode = 2
theme_override_constants/h_separation = 30
columns = 6
[node name="CheckBox5" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox5" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -419,7 +423,7 @@ size_flags_vertical = 0
icon = ExtResource("5_ja8to")
expand_icon = true
[node name="CheckBox3" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox3" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -427,7 +431,7 @@ size_flags_vertical = 0
icon = ExtResource("6_mvrie")
expand_icon = true
[node name="CheckBox4" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox4" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -435,7 +439,7 @@ size_flags_vertical = 0
icon = ExtResource("7_01lqn")
expand_icon = true
[node name="CheckBox6" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox6" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -443,7 +447,7 @@ size_flags_vertical = 0
icon = ExtResource("7_b8xj2")
expand_icon = true
[node name="CheckBox" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -451,7 +455,7 @@ size_flags_vertical = 0
icon = ExtResource("8_rvph4")
expand_icon = true
[node name="CheckBox7" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox7" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -459,7 +463,7 @@ size_flags_vertical = 0
icon = ExtResource("9_s3srh")
expand_icon = true
[node name="CheckBox8" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox8" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -467,7 +471,7 @@ size_flags_vertical = 0
icon = ExtResource("10_2jlmn")
expand_icon = true
[node name="CheckBox9" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox9" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -475,7 +479,7 @@ size_flags_vertical = 0
icon = ExtResource("5_4d7s7")
expand_icon = true
[node name="CheckBox10" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/borders_gridcontainer"]
[node name="CheckBox10" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"]
custom_minimum_size = Vector2(175, 175)
layout_mode = 2
size_flags_horizontal = 0
@ -483,7 +487,7 @@ size_flags_vertical = 0
icon = ExtResource("12_pp08o")
expand_icon = true
[node name="systems_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer"]
[node name="systems_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"]
visible = false
layout_mode = 2
size_flags_vertical = 3
@ -491,7 +495,7 @@ theme_override_constants/h_separation = 10
theme_override_constants/v_separation = 10
columns = 6
[node name="Button3" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/systems_gridcontainer"]
[node name="Button3" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"]
layout_mode = 2
tooltip_text = "RetroARCH"
theme_override_styles/focus = ExtResource("5_rjtkn")
@ -500,7 +504,7 @@ icon = ExtResource("4_xcuib")
icon_alignment = 1
vertical_icon_alignment = 0
[node name="Button8" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/systems_gridcontainer"]
[node name="Button8" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"]
layout_mode = 2
theme_override_styles/focus = ExtResource("5_rjtkn")
text = "Dolphin"
@ -508,7 +512,7 @@ icon = ExtResource("11_61sak")
icon_alignment = 1
vertical_icon_alignment = 0
[node name="Button7" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/systems_gridcontainer"]
[node name="Button7" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"]
layout_mode = 2
tooltip_text = "CITRA"
text = "RPCS3"
@ -516,7 +520,7 @@ icon = ExtResource("8_ec4gt")
icon_alignment = 1
vertical_icon_alignment = 0
[node name="Button5" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/systems_gridcontainer"]
[node name="Button5" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"]
layout_mode = 2
tooltip_text = "PSPSSPP"
theme_override_styles/focus = ExtResource("5_rjtkn")
@ -525,7 +529,7 @@ icon = ExtResource("8_akxf7")
icon_alignment = 1
vertical_icon_alignment = 0
[node name="Button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/systems_gridcontainer"]
[node name="Button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"]
layout_mode = 2
tooltip_text = "Duckstation"
theme_override_styles/focus = ExtResource("5_rjtkn")
@ -534,7 +538,7 @@ icon = ExtResource("6_winpq")
icon_alignment = 1
vertical_icon_alignment = 0
[node name="Button2" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/systems_gridcontainer"]
[node name="Button2" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"]
layout_mode = 2
tooltip_text = "Melon DS"
theme_override_styles/focus = ExtResource("5_rjtkn")
@ -543,7 +547,7 @@ icon = ExtResource("7_4otos")
icon_alignment = 1
vertical_icon_alignment = 0
[node name="Button9" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Gobals/ScrollContainer/VBoxContainer/systems_gridcontainer"]
[node name="Button9" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"]
visible = false
layout_mode = 2
tooltip_text = "CITRA"
@ -553,12 +557,153 @@ icon = ExtResource("10_wbaif")
icon_alignment = 1
vertical_icon_alignment = 0
[node name="SYSTEM" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
layout_mode = 2
script = ExtResource("36_wv31h")
metadata/_tab_index = 1
[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM"]
layout_mode = 2
follow_focus = true
[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="controls_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer"]
layout_mode = 2
[node name="controls_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container"]
layout_mode = 2
text = "SYSTEMS & EMULATORS"
[node name="controls_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container"]
layout_mode = 2
[node name="system_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container"]
unique_name_in_owner = true
layout_mode = 2
columns = 4
[node name="retroarch_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "RETROARCH"
icon = ExtResource("4_xcuib")
[node name="mame_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "MAME"
icon = ExtResource("36_dj81i")
[node name="ruffle_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "RUFFLE"
icon = ExtResource("37_7hhbn")
[node name="melonds_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "MELONDS"
icon = ExtResource("7_4otos")
[node name="pcsx2_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "PCSX2"
icon = ExtResource("38_44je8")
[node name="duckstation_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "DUCKSTATION"
icon = ExtResource("6_winpq")
[node name="ppsspp_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "PPSSPP"
icon = ExtResource("8_akxf7")
[node name="vita3k_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "VITA3K"
icon = ExtResource("38_vsjf2")
[node name="rpcs3_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "RPCS3"
icon = ExtResource("8_ec4gt")
[node name="ryujinx_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "RYUJINX"
icon = ExtResource("40_7fdvq")
[node name="dolphin_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "DOLPHIN"
icon = ExtResource("11_61sak")
[node name="primehack_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "PRIMEHACK"
icon = ExtResource("41_55e56")
[node name="cemu_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "CEMU"
icon = ExtResource("42_n3n7j")
[node name="xemu_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "XEMU"
icon = ExtResource("43_ifi6j")
[node name="esde_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/system_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "ES-DE"
icon = ExtResource("44_7lpj5")
[node name="action_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container"]
unique_name_in_owner = true
visible = false
layout_mode = 2
columns = 3
[node name="help_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/action_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "Help"
icon = ExtResource("46_feagl")
[node name="launch_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/action_gridcontainer"]
unique_name_in_owner = true
layout_mode = 2
text = "LAUNCH"
icon = ExtResource("45_qxd26")
[node name="reset_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/controls_container/action_gridcontainer"]
layout_mode = 2
text = "RESET"
icon = ExtResource("12_3jrmi")
[node name="WIP" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
script = SubResource("GDScript_203iw")
metadata/_tab_index = 1
metadata/_tab_index = 2
[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP"]
layout_mode = 2
@ -577,11 +722,11 @@ icon = ExtResource("4_q6hd2")
[node name="decorations_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
columns = 5
[node name="wide_screen" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"]
visible = false
custom_minimum_size = Vector2(200, 200)
layout_mode = 2
size_flags_horizontal = 4
@ -900,30 +1045,6 @@ layout_mode = 2
text = "FUNCTIONS - Save states, etc"
icon = ExtResource("18_h2o3e")
[node name="TK_SYSTEM" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 2
[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM"]
layout_mode = 2
follow_focus = true
[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="controls_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer/VBoxContainer"]
layout_mode = 2
[node name="controls_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer/VBoxContainer/controls_container"]
layout_mode = 2
text = "TK_SYSTEM"
[node name="controls_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer/VBoxContainer/controls_container"]
layout_mode = 2
[node name="TK_TOOLS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"]
visible = false
layout_mode = 2
@ -1452,22 +1573,6 @@ mouse_filter = 1
mouse_default_cursor_shape = 8
script = ExtResource("4_nqqx3")
[node name="rekku_sprite" type="Sprite2D" parent="Background/SplitContainer/side_logo/rekku"]
position = Vector2(530.5, -989)
scale = Vector2(0.264648, 0.302734)
texture = ExtResource("32_omdu2")
[node name="blink_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"]
sprite_frames = SubResource("SpriteFrames_k7pd1")
animation = &"blink"
autoplay = "blink"
frame_progress = 0.188668
[node name="speech_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"]
sprite_frames = SubResource("SpriteFrames_l20mt")
animation = &"speech"
autoplay = "speech"
[node name="speach_bubble" type="Panel" parent="Background/SplitContainer/side_logo/rekku"]
layout_mode = 1
anchors_preset = 7
@ -1475,25 +1580,25 @@ 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_left = 365.0
offset_top = -783.0
offset_right = 673.0
offset_bottom = -402.0
grow_horizontal = 2
grow_vertical = 0
theme_override_styles/panel = SubResource("StyleBoxTexture_rf0rc")
[node name="helper_text" type="RichTextLabel" parent="Background/SplitContainer/side_logo/rekku"]
[node name="helper_text" type="RichTextLabel" parent="Background/SplitContainer/side_logo/rekku/speach_bubble"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 414.0
offset_top = -815.0
offset_right = 668.0
offset_bottom = -420.0
offset_left = -132.0
offset_top = -177.5
offset_right = 149.0
offset_bottom = 172.5
grow_horizontal = 2
grow_vertical = 2
text = "Rekku:
@ -1504,6 +1609,24 @@ fit_content = true
scroll_following = true
script = ExtResource("5_cprkf")
[node name="rekku_sprite" type="Sprite2D" parent="Background/SplitContainer/side_logo/rekku"]
position = Vector2(544, -898)
scale = Vector2(0.5, 0.5)
texture = ExtResource("57_1n3u5")
[node name="blink_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"]
position = Vector2(-72, -252)
sprite_frames = SubResource("SpriteFrames_k7pd1")
animation = &"blink"
autoplay = "blink"
frame_progress = 0.188668
[node name="speech_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"]
position = Vector2(-76, -198)
sprite_frames = SubResource("SpriteFrames_l20mt")
animation = &"speech"
autoplay = "speech"
[node name="TextureRect" type="TextureRect" parent="Background/SplitContainer/side_logo"]
visible = false
layout_mode = 0
@ -1523,7 +1646,7 @@ visible = false
position = Vector2(134, 151)
color = Color(0.858824, 0.890196, 1, 1)
[node name="coltroller_guide" type="PanelContainer" parent="."]
[node name="controller_guide" type="PanelContainer" parent="."]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
@ -1534,15 +1657,16 @@ offset_top = -69.0
offset_right = -337.0
grow_horizontal = 2
grow_vertical = 0
script = SubResource("GDScript_j7wyh")
[node name="controller_guide_text" type="RichTextLabel" parent="coltroller_guide"]
[node name="controller_guide_text" type="RichTextLabel" parent="controller_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
[node name="a_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"]
[node name="a_button" type="TextureButton" parent="controller_guide/controller_guide_text"]
unique_name_in_owner = true
layout_mode = 2
offset_left = 147.0
@ -1553,7 +1677,7 @@ 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"]
[node name="b_button" type="TextureButton" parent="controller_guide/controller_guide_text"]
unique_name_in_owner = true
layout_mode = 2
offset_left = 314.0
@ -1564,7 +1688,7 @@ 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"]
[node name="l1_button" type="TextureButton" parent="controller_guide/controller_guide_text"]
unique_name_in_owner = true
layout_mode = 2
offset_left = 7.0
@ -1575,7 +1699,7 @@ texture_normal = ExtResource("38_prt7u")
texture_pressed = ExtResource("39_m4qgd")
stretch_mode = 0
[node name="r1_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"]
[node name="r1_button" type="TextureButton" parent="controller_guide/controller_guide_text"]
unique_name_in_owner = true
layout_mode = 0
offset_left = 832.0
@ -1586,7 +1710,7 @@ texture_normal = ExtResource("39_5ft88")
texture_pressed = ExtResource("40_pnuor")
stretch_mode = 0
[node name="exit_button" type="Button" parent="coltroller_guide/controller_guide_text"]
[node name="exit_button" type="Button" parent="controller_guide/controller_guide_text"]
layout_mode = 2
offset_left = 567.0
offset_top = -11.0
@ -1599,7 +1723,7 @@ flat = true
icon_alignment = 1
expand_icon = true
[node name="locale_option" type="OptionButton" parent="coltroller_guide/controller_guide_text"]
[node name="locale_option" type="OptionButton" parent="controller_guide/controller_guide_text"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 3
@ -1636,5 +1760,5 @@ volume_db = -5.0
[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container/bios_button" to="." method="_on_bios_button_pressed"]
[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container/bios_button_expert" to="." method="_on_bios_button_expert_pressed"]
[connection signal="pressed" from="coltroller_guide/controller_guide_text/exit_button" to="." method="_on_exit_button_pressed"]
[connection signal="item_selected" from="coltroller_guide/controller_guide_text/locale_option" to="." method="_on_locale_selected"]
[connection signal="pressed" from="controller_guide/controller_guide_text/exit_button" to="." method="_on_exit_button_pressed"]
[connection signal="item_selected" from="controller_guide/controller_guide_text/locale_option" to="." method="_on_locale_selected"]

View file

@ -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_fqtjp"]
[sub_resource type="Image" id="Image_3jqhf"]
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_fqtjp")
image = SubResource("Image_3jqhf")
[sub_resource type="Image" id="Image_tditd"]
[sub_resource type="Image" id="Image_1thte"]
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_tditd")
image = SubResource("Image_1thte")
[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_mrt37"]
[sub_resource type="Image" id="Image_qryl2"]
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_mrt37")
image = SubResource("Image_qryl2")
[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_mgesx"]
[sub_resource type="Image" id="Image_m8e1f"]
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_mgesx")
image = SubResource("Image_m8e1f")
[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_fkqgi"]
[sub_resource type="Image" id="Image_ugtma"]
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_fkqgi")
image = SubResource("Image_ugtma")
[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_fe7ad"]
[sub_resource type="Image" id="Image_kxy7u"]
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_fe7ad")
image = SubResource("Image_kxy7u")
[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_e7qpu"]
[sub_resource type="Image" id="Image_m6shq"]
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_e7qpu")
image = SubResource("Image_m6shq")
[sub_resource type="Image" id="Image_bhnyy"]
[sub_resource type="Image" id="Image_rt115"]
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_bhnyy")
image = SubResource("Image_rt115")
[sub_resource type="Image" id="Image_m68hq"]
[sub_resource type="Image" id="Image_vkmxh"]
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_m68hq")
image = SubResource("Image_vkmxh")
[sub_resource type="Image" id="Image_epcau"]
[sub_resource type="Image" id="Image_ggfgo"]
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_epcau")
image = SubResource("Image_ggfgo")
[sub_resource type="Image" id="Image_u4re4"]
[sub_resource type="Image" id="Image_2a1q2"]
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_u4re4")
image = SubResource("Image_2a1q2")
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_g6bu4"]
texture = ExtResource("1_ak8qr")
@ -1359,7 +1359,7 @@ region = Rect2(96, 96, 16, 16)
atlas = ExtResource("1_ak8qr")
region = Rect2(96, 80, 16, 16)
[sub_resource type="Image" id="Image_sun6t"]
[sub_resource type="Image" id="Image_cd2os"]
data = {
"data": PackedByteArray("AAAAAJiYmHlOTk4xAAAAAAAAAACNjY15Tk5OMQAAAAAAAAAAgoKCeU5OTjEAAAAAAAAAAE5OTjFOTk4cAAAAAAAAAAA4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjKy4ADhVXwAAAAAAAAAAAIGirQA4VV8AAAAAAAAAAACYmJh5Tk5OMQAAAAAAAAAAjY2NeU5OTjEAAAAAAAAAAIKCgnlOTk4xAAAAAA=="),
"format": "RGBA8",
@ -1369,7 +1369,7 @@ data = {
}
[sub_resource type="ImageTexture" id="29"]
image = SubResource("Image_sun6t")
image = SubResource("Image_cd2os")
[sub_resource type="StyleBoxTexture" id="4"]
content_margin_left = 6.0
@ -1440,7 +1440,7 @@ bg_color = Color(0.490196, 0.490196, 0.490196, 1)
corner_detail = 1
anti_aliasing = false
[sub_resource type="Image" id="Image_ui5pl"]
[sub_resource type="Image" id="Image_3oov2"]
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",
@ -1450,7 +1450,7 @@ data = {
}
[sub_resource type="ImageTexture" id="49"]
image = SubResource("Image_ui5pl")
image = SubResource("Image_3oov2")
[sub_resource type="StyleBoxTexture" id="127"]
content_margin_left = 4.0
@ -2271,7 +2271,7 @@ texture_margin_right = 2.0
texture_margin_bottom = 2.0
region_rect = Rect2(72, 64, 8, 8)
[sub_resource type="Image" id="Image_wlbr4"]
[sub_resource type="Image" id="Image_atdte"]
data = {
"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc5uqs87c4bPO3OGzztzhs87c4bPO3OGzztzhs3ObqrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
"format": "RGBA8",
@ -2281,7 +2281,7 @@ data = {
}
[sub_resource type="ImageTexture" id="199"]
image = SubResource("Image_wlbr4")
image = SubResource("Image_atdte")
[sub_resource type="StyleBoxTexture" id="200"]
texture = SubResource("199")
@ -2305,7 +2305,7 @@ texture_margin_right = 2.0
texture_margin_bottom = 2.0
region_rect = Rect2(64, 64, 8, 8)
[sub_resource type="Image" id="Image_m37lc"]
[sub_resource type="Image" id="Image_rctl8"]
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",
@ -2315,7 +2315,7 @@ data = {
}
[sub_resource type="ImageTexture" id="204"]
image = SubResource("Image_m37lc")
image = SubResource("Image_rctl8")
[sub_resource type="StyleBoxTexture" id="205"]
texture = SubResource("204")
@ -2428,7 +2428,7 @@ axis_stretch_horizontal = 2
axis_stretch_vertical = 2
region_rect = Rect2(80, 0, 16, 8)
[sub_resource type="Image" id="Image_tkr8g"]
[sub_resource type="Image" id="Image_r2vw0"]
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",
@ -2438,9 +2438,9 @@ data = {
}
[sub_resource type="ImageTexture" id="306"]
image = SubResource("Image_tkr8g")
image = SubResource("Image_r2vw0")
[sub_resource type="Image" id="Image_18bpb"]
[sub_resource type="Image" id="Image_g4jd5"]
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",
@ -2450,9 +2450,9 @@ data = {
}
[sub_resource type="ImageTexture" id="308"]
image = SubResource("Image_18bpb")
image = SubResource("Image_g4jd5")
[sub_resource type="Image" id="Image_rvb8t"]
[sub_resource type="Image" id="Image_rv2mk"]
data = {
"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAP9Z/xT/FP9ZAAAAAAAA/1n/FP8U/1kAAAAAAAD/Wf8U/xT/WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"format": "LumAlpha8",
@ -2462,9 +2462,9 @@ data = {
}
[sub_resource type="ImageTexture" id="292"]
image = SubResource("Image_rvb8t")
image = SubResource("Image_rv2mk")
[sub_resource type="Image" id="Image_55usd"]
[sub_resource type="Image" id="Image_8rn4r"]
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",
@ -2474,7 +2474,7 @@ data = {
}
[sub_resource type="ImageTexture" id="39"]
image = SubResource("Image_55usd")
image = SubResource("Image_8rn4r")
[sub_resource type="StyleBoxTexture" id="272"]
content_margin_left = 0.0
@ -2534,7 +2534,7 @@ axis_stretch_horizontal = 2
axis_stretch_vertical = 2
region_rect = Rect2(24, 40, 8, 8)
[sub_resource type="Image" id="Image_4foen"]
[sub_resource type="Image" id="Image_bqkin"]
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",
@ -2544,9 +2544,9 @@ data = {
}
[sub_resource type="ImageTexture" id="334"]
image = SubResource("Image_4foen")
image = SubResource("Image_bqkin")
[sub_resource type="Image" id="Image_070af"]
[sub_resource type="Image" id="Image_ydvb3"]
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",
@ -2556,7 +2556,7 @@ data = {
}
[sub_resource type="ImageTexture" id="336"]
image = SubResource("Image_070af")
image = SubResource("Image_ydvb3")
[sub_resource type="AtlasTexture" id="359"]
atlas = ExtResource("1_ak8qr")
@ -2632,7 +2632,7 @@ border_width_left = 1
border_color = Color(0.2, 0.2, 0.2, 1)
anti_aliasing = false
[sub_resource type="Image" id="Image_qqej6"]
[sub_resource type="Image" id="Image_gpgg0"]
data = {
"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCgnmNjY15mJiYeYGirQCMrLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFVfAE5OTjGCgoJ5jY2NeZiYmHlOTk4xTk5OMU5OTjE4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhVXwBOTk4cTk5OMU5OTjFOTk4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="),
"format": "RGBA8",
@ -2642,7 +2642,7 @@ data = {
}
[sub_resource type="ImageTexture" id="111"]
image = SubResource("Image_qqej6")
image = SubResource("Image_gpgg0")
[sub_resource type="AtlasTexture" id="20"]
atlas = ExtResource("3_0m6kw")

View file

@ -1,6 +1,9 @@
class_name ClassFunctions extends Control
class_name ClassFunctions
# This should be looked at again when GoDot 4.3 ships as has new OS.execute_with_pipe
extends Control
var log_text = "gdc_"
var log_parameters: Array = ["log", "i", log_text]
var wrapper_command: String = "../../tools/retrodeck_function_wrapper.sh"
func array_to_string(arr: Array) -> String:
var text: String
@ -9,6 +12,7 @@ func array_to_string(arr: Array) -> String:
text = line.strip_edges() + "\n"
return text
# TODO This should be looked at again when GoDot 4.3 ships as has new OS.execute_with_pipe
func execute_command(command: String, parameters: Array, console: bool) -> Dictionary:
var result = {}
var output = []

View file

@ -34,6 +34,8 @@ func load_base_data() -> AppData:
var emulator = Emulator.new()
emulator.name = emulator_data["name"]
emulator.description = emulator_data["description"]
emulator.url = emulator_data["url"]
emulator.launch = emulator_data["launch"]
if emulator_data.has("properties"):
for property_data in emulator_data["properties"]:
#print (emulator,"----",property_data)
@ -48,7 +50,8 @@ func load_base_data() -> AppData:
property.multi_user_config_dir = property_data.get("multi_user_config_dir",true)
emulator.properties.append(property)
emulators[key] = emulator
#TODO add systems too
var cores = {}
for key in data_dict["emulator"]["retroarch"]["cores"].keys():
var core_data = data_dict["emulator"]["retroarch"]["cores"][key]
@ -85,7 +88,7 @@ func load_base_data() -> AppData:
get_tree().quit()
return null
func save_base_data(app_dict: AppData): # was apP_data but gave warning
func save_base_data(app_dict: AppData):
var file = FileAccess.open(data_file_path, FileAccess.READ)
var existing_data = {}
if file:
@ -130,6 +133,8 @@ func save_base_data(app_dict: AppData): # was apP_data but gave warning
emulators[key] = {
"name": emulator.name,
"description": emulator.description,
"launch": emulator.launch,
"url": emulator.url,
"properties": properties
}
@ -174,13 +179,14 @@ func modify_link(key: String, new_name: String, new_url: String, new_description
print("Link not found")
# Function to modify an existing emulator
func modify_emulator(key: String, new_name: String, new_description: String, new_properties: Array):
func modify_emulator(key: String, new_name: String, new_launch: String, new_description: String, new_properties: Array):
#data_handler.modify_emulator_test()
var app_dict = load_base_data() # was app_data
if app_dict and app_dict.emulators.has(key):
var emulator = app_dict.emulators[key]
emulator.name = new_name
emulator.description = new_description
emulator.launch = new_launch
# Update properties
emulator.properties.clear()
@ -211,6 +217,7 @@ func add_emulator() -> void:
var emulator = Emulator.new()
emulator.name = "Example System"
emulator.description = "An example emulator."
emulator.launch = "launcher"
var property = EmulatorProperty.new()
#property.standalone = true
property.abxy_button = false
@ -220,16 +227,12 @@ func add_emulator() -> void:
func modify_emulator_test() -> void:
data_handler.modify_link("example_site", "Updated Site", "https://updated-example.com", "Updated description.")
var new_properties = []
var new_property = EmulatorProperty.new()
#new_property.standalone = false
new_property.abxy_button = true
new_properties.append(new_property)
data_handler.modify_emulator("example_emulator", "Updated System", "Updated description", new_properties)
data_handler.modify_emulator("example_emulator", "Updated System", "launcher", "Updated description", new_properties)
func parse_config_to_json(file_path: String) -> Dictionary:
var config = {}

View file

@ -4,4 +4,6 @@ class_name Emulator
@export var name: String
@export var description: String
@export var launch: String
@export var url: String
@export var properties: Array[EmulatorProperty]

View file

@ -0,0 +1,64 @@
extends Control
var app_data := AppData.new()
var current_system := Emulator.new()
func _ready():
app_data = data_handler.app_data
_connect_signals()
func _connect_signals() -> void:
%retroarch_button.pressed.connect(_hide_show_buttons.bind(%retroarch_button,%system_gridcontainer, %action_gridcontainer))
%mame_button.pressed.connect(_hide_show_buttons.bind(%mame_button,%system_gridcontainer, %action_gridcontainer))
%ruffle_button.pressed.connect(_hide_show_buttons.bind(%ruffle_button,%system_gridcontainer, %action_gridcontainer))
%melonds_button.pressed.connect(_hide_show_buttons.bind(%melonds_button,%system_gridcontainer, %action_gridcontainer))
%pcsx2_button.pressed.connect(_hide_show_buttons.bind(%pcsx2_button,%system_gridcontainer, %action_gridcontainer))
%duckstation_button.pressed.connect(_hide_show_buttons.bind(%duckstation_button,%system_gridcontainer, %action_gridcontainer))
%ppsspp_button.pressed.connect(_hide_show_buttons.bind(%ppsspp_button,%system_gridcontainer, %action_gridcontainer))
%vita3k_button.pressed.connect(_hide_show_buttons.bind(%vita3k_button,%system_gridcontainer, %action_gridcontainer))
%rpcs3_button.pressed.connect(_hide_show_buttons.bind(%rpcs3_button,%system_gridcontainer, %action_gridcontainer))
%ryujinx_button.pressed.connect(_hide_show_buttons.bind(%ryujinx_button,%system_gridcontainer, %action_gridcontainer))
%dolphin_button.pressed.connect(_hide_show_buttons.bind(%dolphin_button,%system_gridcontainer, %action_gridcontainer))
%primehack_button.pressed.connect(_hide_show_buttons.bind(%primehack_button,%system_gridcontainer, %action_gridcontainer))
%cemu_button.pressed.connect(_hide_show_buttons.bind(%cemu_button,%system_gridcontainer, %action_gridcontainer))
%xemu_button.pressed.connect(_hide_show_buttons.bind(%xemu_button,%system_gridcontainer, %action_gridcontainer))
%esde_button.pressed.connect(_hide_show_buttons.bind(%esde_button,%system_gridcontainer, %action_gridcontainer))
%help_button.pressed.connect(_do_action.bind(%help_button))
%launch_button.pressed.connect(_do_action.bind(%launch_button))
func _hide_show_buttons(button: Button, buttons_gridcontainer: GridContainer, hidden_gridcontainer: GridContainer) -> void:
current_system = app_data.emulators[button.text.to_lower()]
match button.name:
"retroarch_button", "mame_button", "ruffle_button", "melonds_button", "pcsx2_button", "duckstation_button", \
"ppsspp_button", "vita3k_button", "rpcs3_button", "ryujinx_button", "dolphin_button", "primehack_button", \
"cemu_button", "xemu_button", "esde_button":
hidden_gridcontainer.visible = true
if button.toggle_mode == false:
for i in range(buttons_gridcontainer.get_child_count()):
var child = buttons_gridcontainer.get_child(i)
if child is Button and child != button:
child.visible=false
elif button.toggle_mode == true and hidden_gridcontainer.visible == true:
hidden_gridcontainer.visible = false
for i in range(buttons_gridcontainer.get_child_count()):
var child = buttons_gridcontainer.get_child(i)
if child is Button:
child.visible=true
child.toggle_mode = false
if hidden_gridcontainer.visible == true:
button.toggle_mode = true
func _do_action(button: Button) -> void:
match [button.name, current_system.name]:
["help_button", current_system.name]:
class_functions.log_parameters[2] = class_functions.log_text + "Launching " + current_system.name + " Help"
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
class_functions.launch_help(current_system.url)
["launch_button", current_system.name]:
class_functions.log_parameters[2] = class_functions.log_text + "Launching " + current_system.name
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
var launch = class_functions.execute_command(current_system.launch,[], false)
#Log the result TODO
class_functions.log_parameters[2] = class_functions.log_text + "Exit Code: " + str(launch["exit_code"])
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)

View file

@ -83,18 +83,34 @@ func _connect_signals() -> void:
func _about_button_pressed(id: String) -> void:
match id:
"rd_web":
class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
OS.shell_open(rd_web_button.editor_description)
"rd_changelog":
class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
OS.shell_open(rd_changelog_button.editor_description)
"rd_wiki":
class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
OS.shell_open(rd_wiki_button.editor_description)
"rd_credits":
class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
OS.shell_open(rd_credits_button.editor_description)
"rd_donate":
class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
OS.shell_open(rd_donate_button.editor_description)
"rd_contactus":
class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
OS.shell_open(rd_contactus_button.editor_description)
"rd_licenses":
class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
OS.shell_open(rd_licenses_button.editor_description)
_:
class_functions.log_parameters[2] = class_functions.log_text + "Loading website - no matching ID found"
class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false)
print ("Website ID/Link not found")