Files
VRyHungry1/addons/yaml/examples/classes/my_custom_resource.gd
T
2026-07-19 10:47:28 +02:00

54 lines
1.4 KiB
GDScript

class_name MyCustomResource extends YAMLResource
@export var string_val: String
@export var int_val: int
@export var float_val: float
@export var color_val: Color
func _init(p_string := "", p_int := 0, p_float := 0.0, p_color = Color.WHITE) -> void:
string_val = p_string
int_val = p_int
float_val = p_float
color_val = p_color
func hello():
print(string_val)
static func deserialize(data: Variant):
if typeof(data) != TYPE_DICTIONARY:
return YAMLResult.error("Deserializing MyCustomResource expects Dictionary, received %s" % [type_string(typeof(data))])
var dict: Dictionary = data
if !dict.has("string_val"):
return YAMLResult.error("Missing string_val field")
if !dict.has("int_val"):
return YAMLResult.error("Missing int_val field")
if !dict.has("float_val"):
return YAMLResult.error("Missing float_val field")
if !dict.has("color_val"):
return YAMLResult.error("Missing color_val field")
var string_val: String = dict.get("string_val")
var int_val: int = dict.get("int_val")
var float_val: float = dict.get("float_val")
var color_val: Color = dict.get("color_val")
return MyCustomResource.new(
string_val,
int_val,
float_val,
color_val
)
func serialize() -> Dictionary:
return {
"string_val": string_val,
"int_val": int_val,
"float_val": float_val,
"color_val": color_val,
}
func _to_string() -> String:
return "MyCustomResource(%s)" % string_val