@@ -4545,8 +4545,41 @@ bool GDScriptParser::export_annotations(AnnotationNode *p_annotation, Node *p_ta
4545
4545
bool use_default_variable_type_check = true ;
4546
4546
4547
4547
if (p_annotation->name == SNAME (" @export_range" )) {
4548
- if (export_type.builtin_type == Variant::INT) {
4549
- variable->export_info .type = Variant::INT;
4548
+ use_default_variable_type_check = false ;
4549
+
4550
+ switch (export_type.builtin_type ) {
4551
+ case Variant::INT:
4552
+ case Variant::FLOAT:
4553
+ case Variant::VECTOR2:
4554
+ case Variant::VECTOR2I:
4555
+ case Variant::RECT2:
4556
+ case Variant::RECT2I:
4557
+ case Variant::VECTOR3:
4558
+ case Variant::VECTOR3I:
4559
+ case Variant::VECTOR4:
4560
+ case Variant::VECTOR4I:
4561
+ case Variant::TRANSFORM2D:
4562
+ case Variant::PLANE:
4563
+ case Variant::QUATERNION:
4564
+ case Variant::AABB:
4565
+ case Variant::BASIS:
4566
+ case Variant::TRANSFORM3D:
4567
+ case Variant::PROJECTION:
4568
+ case Variant::PACKED_BYTE_ARRAY:
4569
+ case Variant::PACKED_INT32_ARRAY:
4570
+ case Variant::PACKED_INT64_ARRAY:
4571
+ case Variant::PACKED_FLOAT32_ARRAY:
4572
+ case Variant::PACKED_FLOAT64_ARRAY:
4573
+ case Variant::PACKED_VECTOR2_ARRAY:
4574
+ case Variant::PACKED_VECTOR3_ARRAY:
4575
+ case Variant::PACKED_VECTOR4_ARRAY: {
4576
+ variable->export_info .type = export_type.builtin_type ;
4577
+ break ;
4578
+ }
4579
+ default : {
4580
+ push_error (vformat (R"( "@export_range" annotation requires a numeric variable or array, but %s was given instead.)" , variable->get_datatype ().to_string ()));
4581
+ return false ;
4582
+ }
4550
4583
}
4551
4584
} else if (p_annotation->name == SNAME (" @export_multiline" )) {
4552
4585
use_default_variable_type_check = false ;
0 commit comments