TowerDefense/Globals/EnhancedResource.gd

37 lines
1.1 KiB
GDScript3
Raw Normal View History

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