extends Node # Este array almacenará los datos de todas las empresas después de cargarlos. var company_data = [] # La función _ready() se llama automáticamente cuando el nodo entra en el árbol de la escena. # Como este script es un Autoload, se ejecutará al iniciar la aplicación. func _ready(): print("Cargando perfiles de empresas...") load_all_company_profiles() print("Carga completada. Se encontraron %d perfiles." % company_data.size()) # Función para leer todos los archivos JSON de la carpeta "companies" (versión para Godot 3). func load_all_company_profiles(): var path = "res://companies" var dir = Directory.new() if dir.open(path) == OK: dir.list_dir_begin() var file_name = dir.get_next() while file_name != "": # Asegurarse de que solo procesamos archivos .json y no directorios. if not dir.current_is_dir() and file_name.ends_with(".json"): var file_path = path.plus_file(file_name) var file = File.new() if file.open(file_path, File.READ) == OK: var content = file.get_as_text() file.close() var parse_result = JSON.parse(content) if parse_result.error == OK: var data = parse_result.result # Opcional: Añadir el nombre del archivo al diccionario de datos para fácil referencia. data["source_file"] = file_name company_data.append(data) else: print("Error al parsear el JSON '%s': %s (en la línea %d)" % [file_name, parse_result.error_string, parse_result.error_line]) else: print("No se pudo abrir el archivo: %s" % file_path) file_name = dir.get_next() else: print("Error: No se pudo abrir el directorio: %s" % path) # --- Funciones de ejemplo para acceder a los datos --- # Devuelve los datos de una empresa por su nombre. func get_company_by_name(name): for company in company_data: if company.get("company_name") == name: return company return null # Devuelve una lista de todos los nombres de las empresas. func get_all_company_names(): var names = [] for company in company_data: if company.has("company_name"): names.append(company.get("company_name")) names.sort() return names