| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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
|