@tool extends Node3D @export var refresh_animation_lib : bool : get:return false set(_value): Util.refresh_animation_lib() @export var refresh_mesh_lib : bool : get:return false set(_value): process_mesh_lib("res://resource/mesh_level/") print("done.") @export var refresh_uid : bool : get:return false set(_value): process_dir("res://") print("done.") func process_mesh_lib(dir_name: String) -> void: var mesh_library_path = "res://resource/mesh_library/mesh_library.tscn" var mesh_library_res = load(mesh_library_path) var mesh_library = mesh_library_res.instantiate() as MeshLib add_child(mesh_library) mesh_library.owner = get_tree().edited_scene_root mesh_library.name = "MeshLib" var dir := DirAccess.open(dir_name) if dir: dir.list_dir_begin() var file_name = dir.get_next() if dir_name.ends_with("/"): dir_name = dir_name.trim_suffix("/") while file_name != "": var file_name_full = dir_name + "/" + file_name mesh_library.add(file_name_full,file_name) file_name = dir.get_next() else: print("An error occurred when trying to access the path: ", dir_name) mesh_library_res.pack(mesh_library) ResourceSaver.save(mesh_library_res) remove_child(mesh_library) func process_dir(dir_name: String) -> void: var dir := DirAccess.open(dir_name) if dir: dir.list_dir_begin() var file_name = dir.get_next() if dir_name.ends_with("/"): dir_name = dir_name.trim_suffix("/") while file_name != "": if dir.current_is_dir(): print("-----" + dir_name + "/" + file_name + " -----") process_dir(dir_name + "/" + file_name) elif file_name.get_extension() in [ "tres", "res" ]: print(dir_name + "/" + file_name) var res := ResourceLoader.load(dir_name + "/" + file_name) ResourceSaver.save(res) file_name = dir.get_next() else: print("An error occurred when trying to access the path: ", dir_name)