@tool extends SceneTree func _init() -> void: for path in _walk("res://"): if path.ends_with(".material") or path.ends_with(".tres") or path.ends_with(".mesh"): var res = ResourceLoader.load(path, "", ResourceLoader.CACHE_MODE_IGNORE) _check(res, path) quit() func _check(res, path: String) -> void: if res == null: return if res is ShaderMaterial: if res.shader is VisualShader: print("VS: ", path) elif res.shader is Shader: pass if res is ArrayMesh: for i in range(res.get_surface_count()): var m = res.surface_get_material(i) if m is ShaderMaterial and m.shader is VisualShader: print("VS-embed: ", path, " surf=", i) func _walk(p: String) -> Array: var out := [] var d = DirAccess.open(p) if d == null: return out d.list_dir_begin() var n = d.get_next() while n != "": if n != "." and n != ".." and n != "android" and not n.begins_with("."): var sub = p if p.ends_with("/") else (p + "/") sub += n if d.current_is_dir(): out.append_array(_walk(sub)) else: out.append(sub) n = d.get_next() return out