Files
2026-07-19 10:47:28 +02:00

58 lines
1.3 KiB
GDScript

@tool
@icon("res://addons/yaml/icon.svg")
class_name YAMLResource extends Resource
# This is a lightweight wrapper around YAML text files
# It doesn't process the YAML content, just holds the raw text
var text_content: String = ""
var file_path: String = ""
func _init(path: String = "", content: String = "") -> void:
file_path = path
text_content = content
if not path.is_empty():
resource_path = path
func get_text() -> String:
return text_content
func set_text(new_text: String) -> void:
text_content = new_text
emit_changed()
func get_file_path() -> String:
return file_path
func load_from_file() -> Error:
if file_path.is_empty():
return ERR_FILE_NOT_FOUND
var file := FileAccess.open(file_path, FileAccess.READ)
if not file:
return FileAccess.get_open_error()
text_content = file.get_as_text()
file.close()
return OK
func save_to_file() -> Error:
if file_path.is_empty():
return ERR_FILE_NOT_FOUND
var file := FileAccess.open(file_path, FileAccess.WRITE)
if not file:
return FileAccess.get_open_error()
file.store_string(text_content)
file.close()
return OK
func serialize() -> Variant:
push_error("Child of YAMLResource needs to override serialize")
return null
static func deserialize(data: Variant) -> Variant:
push_error("Child of YAMLResource needs to override deserialize")
return null