Merge pull request #47502 from KoBeWi/add_0
Always add decimal when converting float to string
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
GDTEST_OK
|
||||
0
|
||||
0.0
|
||||
|
||||
@@ -7,17 +7,17 @@ const const_packed_ints: PackedFloat64Array = [52]
|
||||
|
||||
func test():
|
||||
Utils.check(typeof(const_float_int) == TYPE_FLOAT)
|
||||
Utils.check(str(const_float_int) == '19')
|
||||
Utils.check(str(const_float_int) == '19.0')
|
||||
Utils.check(typeof(const_float_plus) == TYPE_FLOAT)
|
||||
Utils.check(str(const_float_plus) == '34')
|
||||
Utils.check(str(const_float_plus) == '34.0')
|
||||
Utils.check(typeof(const_float_cast) == TYPE_FLOAT)
|
||||
Utils.check(str(const_float_cast) == '76')
|
||||
Utils.check(str(const_float_cast) == '76.0')
|
||||
|
||||
Utils.check(typeof(const_packed_empty) == TYPE_PACKED_FLOAT64_ARRAY)
|
||||
Utils.check(str(const_packed_empty) == '[]')
|
||||
Utils.check(typeof(const_packed_ints) == TYPE_PACKED_FLOAT64_ARRAY)
|
||||
Utils.check(str(const_packed_ints) == '[52]')
|
||||
Utils.check(str(const_packed_ints) == '[52.0]')
|
||||
Utils.check(typeof(const_packed_ints[0]) == TYPE_FLOAT)
|
||||
Utils.check(str(const_packed_ints[0]) == '52')
|
||||
Utils.check(str(const_packed_ints[0]) == '52.0')
|
||||
|
||||
print('ok')
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
GDTEST_OK
|
||||
4
|
||||
4.0
|
||||
|
||||
@@ -54,39 +54,39 @@ func test():
|
||||
untyped_basic.push_back(430.0)
|
||||
inferred_basic.push_back(263.0)
|
||||
typed_basic.push_back(518.0)
|
||||
Utils.check(str(empty_floats) == '[705, 430, 263, 518]')
|
||||
Utils.check(str(untyped_basic) == '[705, 430, 263, 518]')
|
||||
Utils.check(str(inferred_basic) == '[705, 430, 263, 518]')
|
||||
Utils.check(str(typed_basic) == '[705, 430, 263, 518]')
|
||||
Utils.check(str(empty_floats) == '[705.0, 430.0, 263.0, 518.0]')
|
||||
Utils.check(str(untyped_basic) == '[705.0, 430.0, 263.0, 518.0]')
|
||||
Utils.check(str(inferred_basic) == '[705.0, 430.0, 263.0, 518.0]')
|
||||
Utils.check(str(typed_basic) == '[705.0, 430.0, 263.0, 518.0]')
|
||||
|
||||
|
||||
const constant_float := 950.0
|
||||
const constant_int := 170
|
||||
var typed_float := 954.0
|
||||
var filled_floats: Array[float] = [constant_float, constant_int, typed_float, empty_floats[1] + empty_floats[2]]
|
||||
Utils.check(str(filled_floats) == '[950, 170, 954, 693]')
|
||||
Utils.check(str(filled_floats) == '[950.0, 170.0, 954.0, 693.0]')
|
||||
Utils.check(filled_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
var casted_floats := [empty_floats[2] * 2] as Array[float]
|
||||
Utils.check(str(casted_floats) == '[526]')
|
||||
Utils.check(str(casted_floats) == '[526.0]')
|
||||
Utils.check(casted_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
var returned_floats = (func () -> Array[float]: return [554]).call()
|
||||
Utils.check(str(returned_floats) == '[554]')
|
||||
Utils.check(str(returned_floats) == '[554.0]')
|
||||
Utils.check(returned_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
var passed_floats = floats_identity([663.0 if randf() > 0.5 else 663.0])
|
||||
Utils.check(str(passed_floats) == '[663]')
|
||||
Utils.check(str(passed_floats) == '[663.0]')
|
||||
Utils.check(passed_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
var default_floats = (func (floats: Array[float] = [364.0]): return floats).call()
|
||||
Utils.check(str(default_floats) == '[364]')
|
||||
Utils.check(str(default_floats) == '[364.0]')
|
||||
Utils.check(default_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
var typed_int := 556
|
||||
var converted_floats: Array[float] = [typed_int]
|
||||
converted_floats.push_back(498)
|
||||
Utils.check(str(converted_floats) == '[556, 498]')
|
||||
Utils.check(str(converted_floats) == '[556.0, 498.0]')
|
||||
Utils.check(converted_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ func test():
|
||||
Utils.check(constant_basic.get_typed_builtin() == TYPE_NIL)
|
||||
|
||||
const constant_floats: Array[float] = [constant_float - constant_basic[0] - constant_int]
|
||||
Utils.check(str(constant_floats) == '[552]')
|
||||
Utils.check(str(constant_floats) == '[552.0]')
|
||||
Utils.check(constant_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
|
||||
@@ -103,15 +103,15 @@ func test():
|
||||
untyped_basic = source_floats
|
||||
var destination_floats: Array[float] = untyped_basic
|
||||
destination_floats[0] -= 0.74
|
||||
Utils.check(str(source_floats) == '[999]')
|
||||
Utils.check(str(untyped_basic) == '[999]')
|
||||
Utils.check(str(destination_floats) == '[999]')
|
||||
Utils.check(str(source_floats) == '[999.0]')
|
||||
Utils.check(str(untyped_basic) == '[999.0]')
|
||||
Utils.check(str(destination_floats) == '[999.0]')
|
||||
Utils.check(destination_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
|
||||
var duplicated_floats := empty_floats.duplicate().slice(2, 3)
|
||||
duplicated_floats[0] *= 3
|
||||
Utils.check(str(duplicated_floats) == '[789]')
|
||||
Utils.check(str(duplicated_floats) == '[789.0]')
|
||||
Utils.check(duplicated_floats.get_typed_builtin() == TYPE_FLOAT)
|
||||
|
||||
|
||||
|
||||
@@ -62,44 +62,44 @@ func test():
|
||||
untyped_basic[430.0] = 34.0
|
||||
inferred_basic[263.0] = 362.0
|
||||
typed_basic[518.0] = 815.0
|
||||
Utils.check(str(empty_floats) == '{ 705: 507, 430: 34, 263: 362, 518: 815 }')
|
||||
Utils.check(str(untyped_basic) == '{ 705: 507, 430: 34, 263: 362, 518: 815 }')
|
||||
Utils.check(str(inferred_basic) == '{ 705: 507, 430: 34, 263: 362, 518: 815 }')
|
||||
Utils.check(str(typed_basic) == '{ 705: 507, 430: 34, 263: 362, 518: 815 }')
|
||||
Utils.check(str(empty_floats) == '{ 705.0: 507.0, 430.0: 34.0, 263.0: 362.0, 518.0: 815.0 }')
|
||||
Utils.check(str(untyped_basic) == '{ 705.0: 507.0, 430.0: 34.0, 263.0: 362.0, 518.0: 815.0 }')
|
||||
Utils.check(str(inferred_basic) == '{ 705.0: 507.0, 430.0: 34.0, 263.0: 362.0, 518.0: 815.0 }')
|
||||
Utils.check(str(typed_basic) == '{ 705.0: 507.0, 430.0: 34.0, 263.0: 362.0, 518.0: 815.0 }')
|
||||
|
||||
|
||||
const constant_float := 950.0
|
||||
const constant_int := 170
|
||||
var typed_float := 954.0
|
||||
var filled_floats: Dictionary[float, float] = { constant_float: constant_int, typed_float: empty_floats[430.0] + empty_floats[263.0] }
|
||||
Utils.check(str(filled_floats) == '{ 950: 170, 954: 396 }')
|
||||
Utils.check(str(filled_floats) == '{ 950.0: 170.0, 954.0: 396.0 }')
|
||||
Utils.check(filled_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(filled_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
var casted_floats := { empty_floats[263.0] * 2: empty_floats[263.0] / 2 } as Dictionary[float, float]
|
||||
Utils.check(str(casted_floats) == '{ 724: 181 }')
|
||||
Utils.check(str(casted_floats) == '{ 724.0: 181.0 }')
|
||||
Utils.check(casted_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(casted_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
var returned_floats = (func () -> Dictionary[float, float]: return { 554: 455 }).call()
|
||||
Utils.check(str(returned_floats) == '{ 554: 455 }')
|
||||
Utils.check(str(returned_floats) == '{ 554.0: 455.0 }')
|
||||
Utils.check(returned_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(returned_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
var passed_floats = floats_identity({ 663.0 if randf() > 0.5 else 663.0: 366.0 if randf() <= 0.5 else 366.0 })
|
||||
Utils.check(str(passed_floats) == '{ 663: 366 }')
|
||||
Utils.check(str(passed_floats) == '{ 663.0: 366.0 }')
|
||||
Utils.check(passed_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(passed_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
var default_floats = (func (floats: Dictionary[float, float] = { 364.0: 463.0 }): return floats).call()
|
||||
Utils.check(str(default_floats) == '{ 364: 463 }')
|
||||
Utils.check(str(default_floats) == '{ 364.0: 463.0 }')
|
||||
Utils.check(default_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(default_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
var typed_int := 556
|
||||
var converted_floats: Dictionary[float, float] = { typed_int: typed_int }
|
||||
converted_floats[498.0] = 894
|
||||
Utils.check(str(converted_floats) == '{ 556: 556, 498: 894 }')
|
||||
Utils.check(str(converted_floats) == '{ 556.0: 556.0, 498.0: 894.0 }')
|
||||
Utils.check(converted_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(converted_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
@@ -110,7 +110,7 @@ func test():
|
||||
Utils.check(constant_basic.get_typed_value_builtin() == TYPE_NIL)
|
||||
|
||||
const constant_floats: Dictionary[float, float] = { constant_float - constant_basic[228] - constant_int: constant_float + constant_basic[228] + constant_int }
|
||||
Utils.check(str(constant_floats) == '{ -42: 1942 }')
|
||||
Utils.check(str(constant_floats) == '{ -42.0: 1942.0 }')
|
||||
Utils.check(constant_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(constant_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
@@ -119,9 +119,9 @@ func test():
|
||||
untyped_basic = source_floats
|
||||
var destination_floats: Dictionary[float, float] = untyped_basic
|
||||
destination_floats[999.74] -= 0.999
|
||||
Utils.check(str(source_floats) == '{ 999.74: 47 }')
|
||||
Utils.check(str(untyped_basic) == '{ 999.74: 47 }')
|
||||
Utils.check(str(destination_floats) == '{ 999.74: 47 }')
|
||||
Utils.check(str(source_floats) == '{ 999.74: 47.0 }')
|
||||
Utils.check(str(untyped_basic) == '{ 999.74: 47.0 }')
|
||||
Utils.check(str(destination_floats) == '{ 999.74: 47.0 }')
|
||||
Utils.check(destination_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(destination_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
@@ -131,7 +131,7 @@ func test():
|
||||
duplicated_floats.erase(430.0)
|
||||
duplicated_floats.erase(518.0)
|
||||
duplicated_floats[263.0] *= 3
|
||||
Utils.check(str(duplicated_floats) == '{ 263: 1086 }')
|
||||
Utils.check(str(duplicated_floats) == '{ 263.0: 1086.0 }')
|
||||
Utils.check(duplicated_floats.get_typed_key_builtin() == TYPE_FLOAT)
|
||||
Utils.check(duplicated_floats.get_typed_value_builtin() == TYPE_FLOAT)
|
||||
|
||||
|
||||
@@ -80,21 +80,21 @@ var test_placeholder: Array
|
||||
var test_placeholder_packed: PackedStringArray
|
||||
hint=TYPE_STRING hint_string="<String>/<PLACEHOLDER_TEXT>:Placeholder" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_int: Array
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_int_packed_byte: PackedByteArray
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_int_packed32: PackedInt32Array
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_int_packed64: PackedInt64Array
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_int_float_step: Array
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10,0.01" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0,0.01" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_float: Array
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_float_packed32: PackedFloat32Array
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_float_packed64: PackedFloat64Array
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_exp_easing: Array
|
||||
hint=TYPE_STRING hint_string="<float>/<EXP_EASING>:" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_exp_easing_packed32: PackedFloat32Array
|
||||
@@ -126,14 +126,14 @@ var test_weak_packed_vector3_array: PackedVector3Array
|
||||
var test_weak_packed_vector4_array: PackedVector4Array
|
||||
hint=TYPE_STRING hint_string="<Vector4>:" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_weak_packed_byte_array: PackedByteArray
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_weak_packed_int32_array: PackedInt32Array
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_weak_packed_int64_array: PackedInt64Array
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<int>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_weak_packed_float32_array: PackedFloat32Array
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_weak_packed_float64_array: PackedFloat64Array
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1,10" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=TYPE_STRING hint_string="<float>/<RANGE>:1.0,10.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_noalpha_weak_packed_color_array: PackedColorArray
|
||||
hint=TYPE_STRING hint_string="<Color>/<COLOR_NO_ALPHA>:" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
|
||||
@@ -4,11 +4,11 @@ var test_weak_int: int = 1
|
||||
var test_hard_int: int = 2
|
||||
hint=NONE hint_string="" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range: int = 100
|
||||
hint=RANGE hint_string="0,100" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=RANGE hint_string="0.0,100.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_step: int = 101
|
||||
hint=RANGE hint_string="0,100,1" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=RANGE hint_string="0.0,100.0,1.0" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_range_step_or_greater: int = 102
|
||||
hint=RANGE hint_string="0,100,1,or_greater" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
hint=RANGE hint_string="0.0,100.0,1.0,or_greater" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_color: Color = Color(0, 0, 0, 1)
|
||||
hint=NONE hint_string="" usage=DEFAULT|SCRIPT_VARIABLE class_name=&""
|
||||
var test_color_no_alpha: Color = Color(0, 0, 0, 1)
|
||||
|
||||
@@ -13,4 +13,4 @@ true
|
||||
0
|
||||
-255
|
||||
256
|
||||
2
|
||||
2.0
|
||||
|
||||
@@ -13,12 +13,12 @@ GDTEST_OK
|
||||
---
|
||||
-1234.4567
|
||||
-1234.4567
|
||||
-1234
|
||||
-1234
|
||||
-1234.0
|
||||
-1234.0
|
||||
0.4567
|
||||
0.4567
|
||||
---
|
||||
-1234500
|
||||
-1234500
|
||||
-1234500
|
||||
-1234500
|
||||
-1234500.0
|
||||
-1234500.0
|
||||
-1234500.0
|
||||
-1234500.0
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
GDTEST_OK
|
||||
8
|
||||
8.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
GDTEST_OK
|
||||
{ 1: (2, 0) }
|
||||
{ 3: (4, 0) }
|
||||
[[(5, 0)]]
|
||||
[[(6, 0)]]
|
||||
[[(7, 0)]]
|
||||
[X: (8, 9, 7), Y: (0, 1, 0), Z: (0, 0, 1), O: (0, 0, 0)]
|
||||
{ 1: (2.0, 0.0) }
|
||||
{ 3: (4.0, 0.0) }
|
||||
[[(5.0, 0.0)]]
|
||||
[[(6.0, 0.0)]]
|
||||
[[(7.0, 0.0)]]
|
||||
[X: (8.0, 9.0, 7.0), Y: (0.0, 1.0, 0.0), Z: (0.0, 0.0, 1.0), O: (0.0, 0.0, 0.0)]
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
GDTEST_OK
|
||||
x is 1
|
||||
x is 1.0
|
||||
typeof x is 3
|
||||
x is 2
|
||||
x is 2.0
|
||||
typeof x is 3
|
||||
x is 3
|
||||
x is 3.0
|
||||
typeof x is 3
|
||||
ok
|
||||
|
||||
@@ -11,7 +11,7 @@ a
|
||||
1
|
||||
b
|
||||
1
|
||||
(1, 1)
|
||||
(0, 0)
|
||||
(6, 1)
|
||||
(0, 0)
|
||||
(1.0, 1.0)
|
||||
(0.0, 0.0)
|
||||
(6.0, 1.0)
|
||||
(0.0, 0.0)
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
GDTEST_OK
|
||||
===
|
||||
prop1 setter (0, 0)
|
||||
prop1 setter (1, 0)
|
||||
prop1 setter (0.0, 0.0)
|
||||
prop1 setter (1.0, 0.0)
|
||||
---
|
||||
prop1 setter <Inner>
|
||||
subprop getter
|
||||
subprop setter (1, 0)
|
||||
subprop setter (1.0, 0.0)
|
||||
===
|
||||
prop2 setter <Inner>
|
||||
subprop getter
|
||||
subprop setter (1, 0)
|
||||
subprop setter (1.0, 0.0)
|
||||
===
|
||||
prop3 setter (0, 0)
|
||||
prop3 setter (0.0, 0.0)
|
||||
prop3 getter
|
||||
prop3 setter (1, 0)
|
||||
prop3 setter (1.0, 0.0)
|
||||
---
|
||||
prop3 setter <Inner>
|
||||
prop3 getter
|
||||
subprop getter
|
||||
subprop setter (1, 0)
|
||||
subprop setter (1.0, 0.0)
|
||||
===
|
||||
prop4 setter <Inner>
|
||||
prop4 getter
|
||||
subprop getter
|
||||
subprop setter (1, 0)
|
||||
subprop setter (1.0, 0.0)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
GDTEST_OK
|
||||
setting vec from (0, 0) to (2, 0)
|
||||
setting vec from (0, 0) to (0, 2)
|
||||
vec is (0, 0)
|
||||
setting vec from (0.0, 0.0) to (2.0, 0.0)
|
||||
setting vec from (0.0, 0.0) to (0.0, 2.0)
|
||||
vec is (0.0, 0.0)
|
||||
|
||||
@@ -9,13 +9,13 @@ hello world
|
||||
[P: (0, 0), S: (0, 0)]
|
||||
(0.25, 0.25, 0.25)
|
||||
(0, 0, 0)
|
||||
[X: (1, 0), Y: (0, 1), O: (0, 0)]
|
||||
[N: (1, 2, 3), D: 4]
|
||||
(1, 2, 3, 4)
|
||||
[P: (0, 0, 0), S: (1, 1, 1)]
|
||||
[X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1)]
|
||||
[X: (1, 0, 0), Y: (0, 1, 0), Z: (0, 0, 1), O: (0, 0, 0)]
|
||||
[X: (1.0, 0.0), Y: (0.0, 1.0), O: (0.0, 0.0)]
|
||||
[N: (1.0, 2.0, 3.0), D: 4]
|
||||
(1, 2, 3, 4)
|
||||
[P: (0.0, 0.0, 0.0), S: (1.0, 1.0, 1.0)]
|
||||
[X: (1.0, 0.0, 0.0), Y: (0.0, 1.0, 0.0), Z: (0.0, 0.0, 1.0)]
|
||||
[X: (1.0, 0.0, 0.0), Y: (0.0, 1.0, 0.0), Z: (0.0, 0.0, 1.0), O: (0.0, 0.0, 0.0)]
|
||||
(1.0, 2.0, 3.0, 4.0)
|
||||
hello
|
||||
hello/world
|
||||
RID(0)
|
||||
@@ -26,10 +26,10 @@ Node::[signal]property_list_changed
|
||||
[255, 0, 1]
|
||||
[-1, 0, 1]
|
||||
[-1, 0, 1]
|
||||
[-1, 0, 1]
|
||||
[-1, 0, 1]
|
||||
[-1.0, 0.0, 1.0]
|
||||
[-1.0, 0.0, 1.0]
|
||||
["hello", "world"]
|
||||
[(1, 1), (0, 0)]
|
||||
[(1, 1, 1), (0, 0, 0)]
|
||||
[(1, 0, 0, 1), (0, 0, 1, 1), (0, 1, 0, 1)]
|
||||
[(1.0, 1.0), (0.0, 0.0)]
|
||||
[(1.0, 1.0, 1.0), (0.0, 0.0, 0.0)]
|
||||
[(1.0, 0.0, 0.0, 1.0), (0.0, 0.0, 1.0, 1.0), (0.0, 1.0, 0.0, 1.0)]
|
||||
[(1, 1, 1, 1), (0, 0, 0, 0)]
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
class_name Utils
|
||||
|
||||
|
||||
# `assert()` is not evaluated in non-debug builds. Do not use `assert()`
|
||||
# for anything other than testing the `assert()` itself.
|
||||
static func check(condition: Variant) -> void:
|
||||
|
||||
@@ -4372,9 +4372,45 @@ bool BindingsGenerator::_populate_object_type_interfaces() {
|
||||
return true;
|
||||
}
|
||||
|
||||
static String _get_vector2_cs_ctor_args(const Vector2 &p_vec2) {
|
||||
return String::num_real(p_vec2.x, true) + "f, " +
|
||||
String::num_real(p_vec2.y, true) + "f";
|
||||
}
|
||||
|
||||
static String _get_vector3_cs_ctor_args(const Vector3 &p_vec3) {
|
||||
return String::num_real(p_vec3.x, true) + "f, " +
|
||||
String::num_real(p_vec3.y, true) + "f, " +
|
||||
String::num_real(p_vec3.z, true) + "f";
|
||||
}
|
||||
|
||||
static String _get_vector4_cs_ctor_args(const Vector4 &p_vec4) {
|
||||
return String::num_real(p_vec4.x, true) + "f, " +
|
||||
String::num_real(p_vec4.y, true) + "f, " +
|
||||
String::num_real(p_vec4.z, true) + "f, " +
|
||||
String::num_real(p_vec4.w, true) + "f";
|
||||
}
|
||||
|
||||
static String _get_vector2i_cs_ctor_args(const Vector2i &p_vec2i) {
|
||||
return itos(p_vec2i.x) + ", " + itos(p_vec2i.y);
|
||||
}
|
||||
|
||||
static String _get_vector3i_cs_ctor_args(const Vector3i &p_vec3i) {
|
||||
return itos(p_vec3i.x) + ", " + itos(p_vec3i.y) + ", " + itos(p_vec3i.z);
|
||||
}
|
||||
|
||||
static String _get_vector4i_cs_ctor_args(const Vector4i &p_vec4i) {
|
||||
return itos(p_vec4i.x) + ", " + itos(p_vec4i.y) + ", " + itos(p_vec4i.z) + ", " + itos(p_vec4i.w);
|
||||
}
|
||||
|
||||
static String _get_color_cs_ctor_args(const Color &p_color) {
|
||||
return String::num(p_color.r, 4) + "f, " +
|
||||
String::num(p_color.g, 4) + "f, " +
|
||||
String::num(p_color.b, 4) + "f, " +
|
||||
String::num(p_color.a, 4) + "f";
|
||||
}
|
||||
|
||||
bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, ArgumentInterface &r_iarg) {
|
||||
r_iarg.def_param_value = p_val;
|
||||
r_iarg.default_argument = p_val.operator String();
|
||||
|
||||
switch (p_val.get_type()) {
|
||||
case Variant::NIL:
|
||||
@@ -4387,10 +4423,14 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
break;
|
||||
case Variant::INT:
|
||||
if (r_iarg.type.cname != name_cache.type_int) {
|
||||
r_iarg.default_argument = "(%s)(" + r_iarg.default_argument + ")";
|
||||
r_iarg.default_argument = "(%s)(" + p_val.operator String() + ")";
|
||||
} else {
|
||||
r_iarg.default_argument = p_val.operator String();
|
||||
}
|
||||
break;
|
||||
case Variant::FLOAT:
|
||||
r_iarg.default_argument = p_val.operator String();
|
||||
|
||||
if (r_iarg.type.cname == name_cache.type_float) {
|
||||
r_iarg.default_argument += "f";
|
||||
}
|
||||
@@ -4400,7 +4440,7 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
case Variant::NODE_PATH:
|
||||
if (r_iarg.type.cname == name_cache.type_StringName || r_iarg.type.cname == name_cache.type_NodePath) {
|
||||
if (r_iarg.default_argument.length() > 0) {
|
||||
r_iarg.default_argument = "(%s)\"" + r_iarg.default_argument + "\"";
|
||||
r_iarg.default_argument = "(%s)\"" + p_val.operator String() + "\"";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_REF;
|
||||
} else {
|
||||
// No need for a special `in` statement to change `null` to `""`. Marshaling takes care of this already.
|
||||
@@ -4408,40 +4448,62 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
}
|
||||
} else {
|
||||
CRASH_COND(r_iarg.type.cname != name_cache.type_String);
|
||||
r_iarg.default_argument = "\"" + r_iarg.default_argument + "\"";
|
||||
r_iarg.default_argument = "\"" + p_val.operator String() + "\"";
|
||||
}
|
||||
break;
|
||||
case Variant::PLANE: {
|
||||
Plane plane = p_val.operator Plane();
|
||||
r_iarg.default_argument = "new Plane(new Vector3" + plane.normal.operator String() + ", " + rtos(plane.d) + ")";
|
||||
r_iarg.default_argument = "new Plane(new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(plane.normal) + "), " + rtos(plane.d) + "f)";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
case Variant::AABB: {
|
||||
AABB aabb = p_val.operator ::AABB();
|
||||
r_iarg.default_argument = "new Aabb(new Vector3" + aabb.position.operator String() + ", new Vector3" + aabb.size.operator String() + ")";
|
||||
r_iarg.default_argument = "new Aabb(new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(aabb.position) + "), new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(aabb.size) + "))";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
case Variant::RECT2: {
|
||||
Rect2 rect = p_val.operator Rect2();
|
||||
r_iarg.default_argument = "new Rect2(new Vector2" + rect.position.operator String() + ", new Vector2" + rect.size.operator String() + ")";
|
||||
r_iarg.default_argument = "new Rect2(new Vector2(" +
|
||||
_get_vector2_cs_ctor_args(rect.position) + "), new Vector2(" +
|
||||
_get_vector2_cs_ctor_args(rect.size) + "))";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
case Variant::RECT2I: {
|
||||
Rect2i rect = p_val.operator Rect2i();
|
||||
r_iarg.default_argument = "new Rect2I(new Vector2I" + rect.position.operator String() + ", new Vector2I" + rect.size.operator String() + ")";
|
||||
r_iarg.default_argument = "new Rect2I(new Vector2I(" +
|
||||
_get_vector2i_cs_ctor_args(rect.position) + "), new Vector2I(" +
|
||||
_get_vector2i_cs_ctor_args(rect.size) + "))";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
case Variant::COLOR:
|
||||
r_iarg.default_argument = "new Color(" + _get_color_cs_ctor_args(p_val.operator Color()) + ")";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
break;
|
||||
case Variant::VECTOR2:
|
||||
r_iarg.default_argument = "new Vector2(" + _get_vector2_cs_ctor_args(p_val.operator Vector2()) + ")";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
break;
|
||||
case Variant::VECTOR2I:
|
||||
r_iarg.default_argument = "new Vector2I(" + _get_vector2i_cs_ctor_args(p_val.operator Vector2i()) + ")";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
break;
|
||||
case Variant::VECTOR3:
|
||||
r_iarg.default_argument = "new Vector3(" + _get_vector3_cs_ctor_args(p_val.operator Vector3()) + ")";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
break;
|
||||
case Variant::VECTOR3I:
|
||||
r_iarg.default_argument = "new %s" + r_iarg.default_argument;
|
||||
r_iarg.default_argument = "new Vector3I(" + _get_vector3i_cs_ctor_args(p_val.operator Vector3i()) + ")";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
break;
|
||||
case Variant::VECTOR4:
|
||||
r_iarg.default_argument = "new Vector4(" + _get_vector4_cs_ctor_args(p_val.operator Vector4()) + ")";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
break;
|
||||
case Variant::VECTOR4I:
|
||||
r_iarg.default_argument = "new %s" + r_iarg.default_argument;
|
||||
r_iarg.default_argument = "new Vector4I(" + _get_vector4i_cs_ctor_args(p_val.operator Vector4i()) + ")";
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
break;
|
||||
case Variant::OBJECT:
|
||||
@@ -4491,7 +4553,10 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
if (transform == Transform2D()) {
|
||||
r_iarg.default_argument = "Transform2D.Identity";
|
||||
} else {
|
||||
r_iarg.default_argument = "new Transform2D(new Vector2" + transform.columns[0].operator String() + ", new Vector2" + transform.columns[1].operator String() + ", new Vector2" + transform.columns[2].operator String() + ")";
|
||||
r_iarg.default_argument = "new Transform2D(new Vector2(" +
|
||||
_get_vector2_cs_ctor_args(transform.columns[0]) + "), new Vector2(" +
|
||||
_get_vector2_cs_ctor_args(transform.columns[1]) + "), new Vector2(" +
|
||||
_get_vector2_cs_ctor_args(transform.columns[2]) + "))";
|
||||
}
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
@@ -4501,7 +4566,11 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
r_iarg.default_argument = "Transform3D.Identity";
|
||||
} else {
|
||||
Basis basis = transform.basis;
|
||||
r_iarg.default_argument = "new Transform3D(new Vector3" + basis.get_column(0).operator String() + ", new Vector3" + basis.get_column(1).operator String() + ", new Vector3" + basis.get_column(2).operator String() + ", new Vector3" + transform.origin.operator String() + ")";
|
||||
r_iarg.default_argument = "new Transform3D(new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(basis.get_column(0)) + "), new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(basis.get_column(1)) + "), new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(basis.get_column(2)) + "), new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(transform.origin) + "))";
|
||||
}
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
@@ -4510,7 +4579,11 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
if (projection == Projection()) {
|
||||
r_iarg.default_argument = "Projection.Identity";
|
||||
} else {
|
||||
r_iarg.default_argument = "new Projection(new Vector4" + projection.columns[0].operator String() + ", new Vector4" + projection.columns[1].operator String() + ", new Vector4" + projection.columns[2].operator String() + ", new Vector4" + projection.columns[3].operator String() + ")";
|
||||
r_iarg.default_argument = "new Projection(new Vector4(" +
|
||||
_get_vector4_cs_ctor_args(projection.columns[0]) + "), new Vector4(" +
|
||||
_get_vector4_cs_ctor_args(projection.columns[1]) + "), new Vector4(" +
|
||||
_get_vector4_cs_ctor_args(projection.columns[2]) + "), new Vector4(" +
|
||||
_get_vector4_cs_ctor_args(projection.columns[3]) + "))";
|
||||
}
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
@@ -4519,7 +4592,10 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
if (basis == Basis()) {
|
||||
r_iarg.default_argument = "Basis.Identity";
|
||||
} else {
|
||||
r_iarg.default_argument = "new Basis(new Vector3" + basis.get_column(0).operator String() + ", new Vector3" + basis.get_column(1).operator String() + ", new Vector3" + basis.get_column(2).operator String() + ")";
|
||||
r_iarg.default_argument = "new Basis(new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(basis.get_column(0)) + "), new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(basis.get_column(1)) + "), new Vector3(" +
|
||||
_get_vector3_cs_ctor_args(basis.get_column(2)) + "))";
|
||||
}
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
@@ -4528,7 +4604,11 @@ bool BindingsGenerator::_arg_default_value_from_variant(const Variant &p_val, Ar
|
||||
if (quaternion == Quaternion()) {
|
||||
r_iarg.default_argument = "Quaternion.Identity";
|
||||
} else {
|
||||
r_iarg.default_argument = "new Quaternion" + quaternion.operator String();
|
||||
r_iarg.default_argument = "new Quaternion(" +
|
||||
String::num_real(quaternion.x, false) + "f, " +
|
||||
String::num_real(quaternion.y, false) + "f, " +
|
||||
String::num_real(quaternion.z, false) + "f, " +
|
||||
String::num_real(quaternion.w, false) + "f)";
|
||||
}
|
||||
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_VAL;
|
||||
} break;
|
||||
|
||||
Reference in New Issue
Block a user