-
Notifications
You must be signed in to change notification settings - Fork 62
/
variant.gd
76 lines (73 loc) · 1.74 KB
/
variant.gd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
tool
class_name Variant
extends Reference
# author: willnationsdev
# license: MIT
# description: A utility class for handling Variants.
# Returns a string form of all types, but allows Objects to override their string conversion.
static func var_to_string(p_value) -> String:
if typeof(p_value) == TYPE_OBJECT and p_value.has_method("_to_string"):
return p_value._to_string() as String
return var2str(p_value)
# Returns the string text of a type's name, for all types.
static func get_type(p_value) -> String:
match typeof(p_value):
TYPE_NIL:
return "null"
TYPE_BOOL:
return "bool"
TYPE_INT:
return "int"
TYPE_REAL:
# can update this to conditionally display "double" once the engine
# adds support for it and sets up an Engine.get_real_type() method or something.
return "float"
TYPE_STRING:
return "String"
TYPE_VECTOR2:
return "Vector2"
TYPE_RECT2:
return "Rect2"
TYPE_VECTOR3:
return "Vector3"
TYPE_TRANSFORM2D:
return "Transform2D"
TYPE_PLANE:
return "Plane"
TYPE_QUAT:
return "Quat"
TYPE_AABB:
return "AABB"
TYPE_BASIS:
return "Basis"
TYPE_TRANSFORM:
return "Transform"
TYPE_COLOR:
return "Color"
TYPE_NODE_PATH:
return "NodePath"
TYPE_RID:
return "RID"
TYPE_OBJECT:
var ct := ClassType.new(p_value)
return ct.get_type_class()
#return p_value.get_class()
TYPE_DICTIONARY:
return "Dictionary"
TYPE_ARRAY:
return "Array"
TYPE_RAW_ARRAY:
return "PoolByteArray"
TYPE_INT_ARRAY:
return "PoolIntArray"
TYPE_REAL_ARRAY:
return "PoolRealArray"
TYPE_STRING_ARRAY:
return "PoolStringArray"
TYPE_VECTOR2_ARRAY:
return "PoolVector2Array"
TYPE_VECTOR3_ARRAY:
return "PoolVector3Array"
TYPE_COLOR_ARRAY:
return "PoolColorArray"
return ""