72 lines
1.2 KiB
GDScript
72 lines
1.2 KiB
GDScript
class_name GdUnitProperty
|
|
extends RefCounted
|
|
|
|
|
|
var _name :String
|
|
var _help :String
|
|
var _type :int
|
|
var _value :Variant
|
|
var _value_set :PackedStringArray
|
|
var _default :Variant
|
|
|
|
|
|
func _init(p_name :String, p_type :int, p_value :Variant, p_default_value :Variant, p_help :="", p_value_set := PackedStringArray()) -> void:
|
|
_name = p_name
|
|
_type = p_type
|
|
_value = p_value
|
|
_value_set = p_value_set
|
|
_default = p_default_value
|
|
_help = p_help
|
|
|
|
|
|
func name() -> String:
|
|
return _name
|
|
|
|
|
|
func type() -> int:
|
|
return _type
|
|
|
|
|
|
func value() -> Variant:
|
|
return _value
|
|
|
|
|
|
func value_set() -> PackedStringArray:
|
|
return _value_set
|
|
|
|
|
|
func is_selectable_value() -> bool:
|
|
return not _value_set.is_empty()
|
|
|
|
|
|
func set_value(p_value :Variant) -> void:
|
|
match _type:
|
|
TYPE_STRING:
|
|
_value = str(p_value)
|
|
TYPE_BOOL:
|
|
_value = bool(p_value)
|
|
TYPE_INT:
|
|
_value = int(p_value)
|
|
TYPE_FLOAT:
|
|
_value = float(p_value)
|
|
_:
|
|
_value = p_value
|
|
|
|
|
|
func default() -> Variant:
|
|
return _default
|
|
|
|
|
|
func category() -> String:
|
|
var elements := _name.split("/")
|
|
if elements.size() > 3:
|
|
return elements[2]
|
|
return ""
|
|
|
|
|
|
func help() -> String:
|
|
return _help
|
|
|
|
|
|
func _to_string() -> String:
|
|
return "%-64s %-10s %-10s (%s) help:%s set:%s" % [name(), type(), value(), default(), help(), _value_set]
|