extends Resource class_name EnhancedResource func arrayValueChanged(value : Array[Variant], resourceToCreate : Callable) -> Array[Variant]: if Engine.is_editor_hint(): for i in value.size(): if !value[i]: value[i] = resourceToCreate.call() return value static func getFileFromDir(path : String, regexPattern : String, pathRegexPattern : String = "") -> Array[String]: var files : Array[String] var regex : RegEx = RegEx.create_from_string(regexPattern) var pathRegex : RegEx = RegEx.create_from_string(pathRegexPattern) var dir : DirAccess = DirAccess.open(path) if pathRegexPattern: for subDir in dir.get_directories(): subDir = path + subDir + "/" if pathRegex.search(subDir): files.append_array(getFileFromDir(subDir, regexPattern, pathRegexPattern)) for file in dir.get_files(): if regex.search(file) && pathRegex.search(path): files.append(path + file) return files static func getPackedSceneProperty(scene : PackedScene, propertyName : String) -> Variant: var idx : int = scene._bundled.names.find(propertyName) if idx != -1: return scene._bundled.variants[idx] return null