mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2025-03-06 14:27:48 +00:00

* On branch cooker Changes to be committed: modified: ../config/retrodeck/reference_lists/features.json modified: configurator.sh modified: configurator/TabContainer.gd modified: configurator/assets/themes/accesible_theme.tres modified: configurator/assets/themes/modern_theme.tres modified: configurator/assets/themes/retro_theme.tres modified: configurator/main.tscn modified: configurator/res/pixel_ui_theme/RetroDECKTheme.tres * Signal test * s * Oops Data Recovery On branch cooker Changes to be committed: modified: tools/configurator/main.gd modified: tools/configurator/main.tscn modified: tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres * Sliding Rekku On branch cooker Changes to be committed: modified: tools/configurator/Rekku.gd modified: tools/configurator/main.gd modified: tools/configurator/main.tscn * Using less tabs? On branch cooker Changes to be committed: modified: tools/configurator/main.gd modified: tools/configurator/main.tscn modified: tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres * Generic Save experiment On branch cooker Changes to be committed: modified: tools/configurator/main.gd modified: tools/configurator/main.tscn modified: tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres * Let it flow On branch feat/godot Changes to be committed: new file: .github/workflows/build-godot.yml modified: tools/configurator/main.tscn modified: tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres * On branch feat/godot Changes to be committed: modified: .github/workflows/build-godot.yml * FLow 2.0 * Flow 2.1 * Flow 2.2 * Flow 2.3 * Flow 2.4 * Flow 2.5 * Flow 2.6 * Flow 2.7 * Flow 2.8 * Flow 2.9 * Flow 2.9 * Flow 2.91 * Flow 2.92 * Emualtor==System * FFS revert! * Progress on Cores at last! * Progress on Cores at lastgit add .! * Functions * Bios change * Removed need for BIOS tmp file for Godot * Rotten the core! * Push TEst * fixed duplicate * fixed duplicate * Tidied Bios reading * Rekku assistant * Icons and System Tab work * Generic buttons please * Generic buttons pleases * Generic buttons please2 * Rekku gets the saw * Dialogues * Fixed link to json file * Feat/godot (#927) * Tidied parameter code * Tricky bios dialogue! * Mini change * Tidying icons * And then there were 5! * Time to Cook * INITOOL: added * SET_SETTING_VALUE: edited to use initool * Revert "SET_SETTING_VALUE: edited to use initool" This reverts commitb56916c2b0
. * Revert "INITOOL: added" This reverts commit127bcdb6cd
. * POST_UPDATE: update_rd_conf to include steam_sync * INJECT_FRAMEWORK: added force args [skip ci] * Progress buttons * Reset! --------- Co-authored-by: Rekku <rekku@retrodeck.net> Co-authored-by: XargonWan <XargonWan@gmail.com> --------- Co-authored-by: Rekku <rekku@retrodeck.net> Co-authored-by: XargonWan <XargonWan@gmail.com>
107 lines
3 KiB
GDScript
107 lines
3 KiB
GDScript
class_name ClassFunctions
|
|
|
|
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
|
|
for line in arr:
|
|
#text += line + "\n"
|
|
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 = []
|
|
var exit_code = OS.execute(command, parameters, output, console) ## add if exit == 0 etc
|
|
result["output"] = array_to_string(output)
|
|
result["exit_code"] = exit_code
|
|
#print (array_to_string(output))
|
|
#print (result["exit_code"])
|
|
return result
|
|
|
|
func run_command_in_thread(command: String, paramaters: Array, _console: bool) -> Dictionary:
|
|
var thread = Thread.new()
|
|
thread.start(execute_command.bind(command,paramaters,false))
|
|
while thread.is_alive():
|
|
await get_tree().process_frame
|
|
var result = thread.wait_to_finish()
|
|
thread = null
|
|
return result
|
|
|
|
func _threaded_command_execution(command: String, parameters: Array, console: bool) -> Dictionary:
|
|
var result = execute_command(command, parameters, console)
|
|
return result
|
|
|
|
func process_url_image(body) -> Texture:
|
|
var image = Image.new()
|
|
image.load_png_from_buffer(body)
|
|
var texture = ImageTexture.create_from_image(image)
|
|
return texture
|
|
|
|
func launch_help(url: String) -> void:
|
|
OS.shell_open(url)
|
|
|
|
func import_csv_data(file_path: String) -> Dictionary:
|
|
# check if file exists
|
|
var data_dict: Dictionary
|
|
var file = FileAccess.open(file_path,FileAccess.READ)
|
|
if file:
|
|
var csv_lines: PackedStringArray = file.get_as_text().strip_edges().split("\n")
|
|
for i in range(1, csv_lines.size()): # Start from 1 to skip the header
|
|
var line = csv_lines[i]
|
|
var columns = line.split(",")
|
|
if columns.size() >= 3:
|
|
var id = columns[0]
|
|
var url = columns[1]
|
|
var description = columns[2]
|
|
data_dict[id] = {"URL": url, "Description": description}
|
|
file.close()
|
|
else:
|
|
print ("Could not open file: %s", file_path)
|
|
|
|
return data_dict
|
|
|
|
func _import_data_lists(file_path: String) -> void:
|
|
var tk_about: Dictionary = import_csv_data(file_path)
|
|
|
|
for key in tk_about.keys():
|
|
var entry = tk_about[key]
|
|
print("ID: " + key)
|
|
print("URL: " + entry["URL"])
|
|
print("Description: " + entry["Description"])
|
|
print("---")
|
|
|
|
func import_text_file(file_path: String) -> String:
|
|
var content: String = ""
|
|
var file = FileAccess.open(file_path, FileAccess.READ)
|
|
if file == null:
|
|
print("Failed to open file")
|
|
return content
|
|
while not file.eof_reached():
|
|
content += file.get_line() + "\n"
|
|
file.close
|
|
return content
|
|
|
|
func map_locale_id(current_locale: String) -> int:
|
|
var int_locale: int
|
|
match current_locale:
|
|
"en":
|
|
int_locale = 0
|
|
"it":
|
|
int_locale = 1
|
|
"de":
|
|
int_locale = 2
|
|
"se":
|
|
int_locale = 3
|
|
"uk":
|
|
int_locale = 4
|
|
"jp":
|
|
int_locale = 5
|
|
"cn":
|
|
int_locale = 6
|
|
return int_locale
|