chore: install gut quality suite
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
class_name GutConstants
|
||||
|
||||
const TYPE_STRINGS = {
|
||||
TYPE_NIL : 'TYPE_NIL',
|
||||
TYPE_BOOL : 'TYPE_BOOL',
|
||||
TYPE_INT : 'TYPE_INT',
|
||||
TYPE_FLOAT : 'TYPE_FLOAT',
|
||||
TYPE_STRING : 'TYPE_STRING',
|
||||
TYPE_VECTOR2 : 'TYPE_VECTOR2',
|
||||
TYPE_VECTOR2I : 'TYPE_VECTOR2I',
|
||||
TYPE_RECT2 : 'TYPE_RECT2',
|
||||
TYPE_RECT2I : 'TYPE_RECT2I',
|
||||
TYPE_VECTOR3 : 'TYPE_VECTOR3',
|
||||
TYPE_VECTOR3I : 'TYPE_VECTOR3I',
|
||||
TYPE_TRANSFORM2D : 'TYPE_TRANSFORM2D',
|
||||
TYPE_VECTOR4 : 'TYPE_VECTOR4',
|
||||
TYPE_VECTOR4I : 'TYPE_VECTOR4I',
|
||||
TYPE_PLANE : 'TYPE_PLANE',
|
||||
TYPE_QUATERNION : 'TYPE_QUATERNION',
|
||||
TYPE_AABB : 'TYPE_AABB',
|
||||
TYPE_BASIS : 'TYPE_BASIS',
|
||||
TYPE_TRANSFORM3D : 'TYPE_TRANSFORM3D',
|
||||
TYPE_PROJECTION : 'TYPE_PROJECTION',
|
||||
TYPE_COLOR : 'TYPE_COLOR',
|
||||
TYPE_STRING_NAME : 'TYPE_STRING_NAME',
|
||||
TYPE_NODE_PATH : 'TYPE_NODE_PATH',
|
||||
TYPE_RID : 'TYPE_RID',
|
||||
TYPE_OBJECT : 'TYPE_OBJECT',
|
||||
TYPE_CALLABLE : 'TYPE_CALLABLE',
|
||||
TYPE_SIGNAL : 'TYPE_SIGNAL',
|
||||
TYPE_DICTIONARY : 'TYPE_DICTIONARY',
|
||||
TYPE_ARRAY : 'TYPE_ARRAY',
|
||||
TYPE_PACKED_BYTE_ARRAY : 'TYPE_PACKED_BYTE_ARRAY',
|
||||
TYPE_PACKED_INT32_ARRAY : 'TYPE_PACKED_INT32_ARRAY',
|
||||
TYPE_PACKED_INT64_ARRAY : 'TYPE_PACKED_INT64_ARRAY',
|
||||
TYPE_PACKED_FLOAT32_ARRAY : 'TYPE_PACKED_FLOAT32_ARRAY',
|
||||
TYPE_PACKED_FLOAT64_ARRAY : 'TYPE_PACKED_FLOAT64_ARRAY',
|
||||
TYPE_PACKED_STRING_ARRAY : 'TYPE_PACKED_STRING_ARRAY',
|
||||
TYPE_PACKED_VECTOR2_ARRAY : 'TYPE_PACKED_VECTOR2_ARRAY',
|
||||
TYPE_PACKED_VECTOR3_ARRAY : 'TYPE_PACKED_VECTOR3_ARRAY',
|
||||
TYPE_PACKED_COLOR_ARRAY : 'TYPE_PACKED_COLOR_ARRAY',
|
||||
TYPE_PACKED_VECTOR4_ARRAY : 'TYPE_PACKED_VECTOR4_ARRAY',
|
||||
TYPE_MAX : 'TYPE_MAX',
|
||||
}
|
||||
|
||||
# Values should not be referenced outside of this script.
|
||||
# Use get_default_return_value. The functions look weird, but they are here
|
||||
# so that each call to a doubled method returns a unique instance of things for
|
||||
# anything that would be passed by reference.
|
||||
static var _default_returns = {
|
||||
TYPE_NIL : null,
|
||||
TYPE_BOOL : false,
|
||||
TYPE_INT : 0,
|
||||
TYPE_FLOAT : 0.0,
|
||||
TYPE_STRING : '',
|
||||
TYPE_VECTOR2 : Vector2.ZERO,
|
||||
TYPE_VECTOR2I : Vector2i.ZERO,
|
||||
TYPE_RECT2 : func(): return Rect2(0, 0, 0, 0),
|
||||
TYPE_RECT2I : func(): return Rect2i(0, 0, 0, 0),
|
||||
TYPE_VECTOR3 : Vector3.ZERO,
|
||||
TYPE_VECTOR3I : Vector3i.ZERO,
|
||||
TYPE_TRANSFORM2D : Transform2D.IDENTITY,
|
||||
TYPE_VECTOR4 : Vector4.ZERO,
|
||||
TYPE_VECTOR4I : Vector4i.ZERO,
|
||||
TYPE_PLANE : Plane.PLANE_XY,
|
||||
TYPE_QUATERNION : Quaternion.IDENTITY,
|
||||
TYPE_AABB : func(): return AABB(),
|
||||
TYPE_BASIS : Basis.IDENTITY,
|
||||
TYPE_TRANSFORM3D : Transform3D.IDENTITY,
|
||||
TYPE_PROJECTION : Projection.IDENTITY,
|
||||
TYPE_COLOR : Color.WHITE,
|
||||
TYPE_STRING_NAME : &'',
|
||||
TYPE_NODE_PATH : func(): return NodePath(),
|
||||
TYPE_RID : func(): return RID(),
|
||||
TYPE_OBJECT : null,
|
||||
TYPE_CALLABLE : func(): return Callable(),
|
||||
TYPE_SIGNAL : null,
|
||||
TYPE_DICTIONARY : func(): return {},
|
||||
TYPE_ARRAY : func(): return [],
|
||||
TYPE_PACKED_BYTE_ARRAY : func(): return PackedByteArray(),
|
||||
TYPE_PACKED_INT32_ARRAY : func(): return PackedInt32Array(),
|
||||
TYPE_PACKED_INT64_ARRAY : func(): return PackedInt64Array(),
|
||||
TYPE_PACKED_FLOAT32_ARRAY : func(): return PackedFloat32Array(),
|
||||
TYPE_PACKED_FLOAT64_ARRAY : func(): return PackedFloat64Array(),
|
||||
TYPE_PACKED_STRING_ARRAY : func(): return PackedStringArray(),
|
||||
TYPE_PACKED_VECTOR2_ARRAY : func(): return PackedVector2Array(),
|
||||
TYPE_PACKED_VECTOR3_ARRAY : func(): return PackedVector3Array(),
|
||||
TYPE_PACKED_COLOR_ARRAY : func(): return PackedColorArray(),
|
||||
TYPE_PACKED_VECTOR4_ARRAY : func(): return PackedVector4Array(),
|
||||
# TYPE_MAX : 'TYPE_MAX',
|
||||
}
|
||||
|
||||
# Seeded with any type constant where the constant name can't be converted to
|
||||
# a string using pascal case and/or the values need manual conversion. The
|
||||
# rest are added in _static_init.
|
||||
static var TYPE_KEYWORDS = {
|
||||
TYPE_NIL : 'null',
|
||||
TYPE_BOOL : 'bool',
|
||||
TYPE_INT : 'int',
|
||||
TYPE_FLOAT : 'float',
|
||||
}
|
||||
|
||||
|
||||
static var NOT_SET := &"___NOT__SET___"
|
||||
|
||||
|
||||
static func _static_init() -> void:
|
||||
for key in TYPE_STRINGS:
|
||||
if(!TYPE_KEYWORDS.has(key)):
|
||||
var n : String = TYPE_STRINGS[key].to_lower()
|
||||
n = n.lstrip("type_")
|
||||
TYPE_KEYWORDS[key] = n.to_pascal_case()
|
||||
|
||||
|
||||
static func is_not_set(val):
|
||||
return typeof(val) == TYPE_STRING_NAME and val == NOT_SET
|
||||
|
||||
|
||||
static func get_default_return_value(type=null):
|
||||
if(type == null or typeof(type) != TYPE_INT):
|
||||
return null
|
||||
var to_return = null
|
||||
if(is_not_set(type)):
|
||||
to_return = null
|
||||
elif(_default_returns.has(type)):
|
||||
to_return = _default_returns[type]
|
||||
if(to_return is Callable):
|
||||
to_return = to_return.call()
|
||||
|
||||
return to_return
|
||||
Reference in New Issue
Block a user