tool extends Node2D export(String, DIR) var messages_dir: String setget _set_messages_dir #export var message: String setget _set_message func _ready() -> void: if Engine.editor_hint: return scale.x = 0.0 $Message.texture = load("%s/%s.png" % [messages_dir, message]) func appear() -> void: $AnimationPlayer.play("fun") func switch_action() -> void: appear() func _set_messages_dir(value: String) -> void: messages_dir = value property_list_changed_notify() func _set_message(value: String) -> void: message = value if not Engine.editor_hint: return $Message.texture = load("%s/%s.png" % [messages_dir, message]) func _get_property_list() -> Array: var files: String = "" var dir: Directory = Directory.new() print(messages_dir) if dir.open(messages_dir) == OK: dir.list_dir_begin(true, true) var file_name: String = dir.get_next() while file_name != "": if not dir.current_is_dir() and file_name.ends_with(".png"): print("found file: ", file_name) files += "%s," % file_name.trim_suffix(".png") file_name = dir.get_next() files = files.trim_suffix(",") else: push_error("Failed to open dir: %s" % messages_dir) print(files) return [ { name = "message", type = TYPE_STRING, hint = PROPERTY_HINT_ENUM, hint_string = files, } ]