Skip to content

Commit 15abee1

Browse files
authored
Merge pull request #646 from lilizoey/fix/packed-array-export
Fix packed array exports
2 parents 9900076 + 17af065 commit 15abee1

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

godot-core/src/builtin/packed_array.rs

+15
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,21 @@ macro_rules! impl_packed_array {
503503
}
504504

505505
$crate::builtin::meta::impl_godot_as_self!($PackedArray);
506+
507+
impl $crate::property::Export for $PackedArray {
508+
fn default_export_info() -> $crate::property::PropertyHintInfo {
509+
if sys::GdextBuild::since_api("4.3") {
510+
// In 4.3 Godot can (and does) use type hint strings for packed arrays.
511+
// https://github.com/godotengine/godot/pull/82952
512+
$crate::property::PropertyHintInfo {
513+
hint: $crate::engine::global::PropertyHint::TYPE_STRING,
514+
hint_string: <$Element as $crate::property::TypeStringHint>::type_string().into(),
515+
}
516+
} else {
517+
$crate::property::PropertyHintInfo::with_hint_none(<$PackedArray as $crate::builtin::meta::GodotType>::godot_type_name())
518+
}
519+
}
520+
}
506521
}
507522
}
508523

godot-core/src/property.rs

+10-9
Original file line numberDiff line numberDiff line change
@@ -391,15 +391,16 @@ mod export_impls {
391391
impl_property_by_godot_convert!(Color);
392392

393393
// Arrays
394-
impl_property_by_godot_convert!(PackedByteArray);
395-
impl_property_by_godot_convert!(PackedInt32Array);
396-
impl_property_by_godot_convert!(PackedInt64Array);
397-
impl_property_by_godot_convert!(PackedFloat32Array);
398-
impl_property_by_godot_convert!(PackedFloat64Array);
399-
impl_property_by_godot_convert!(PackedStringArray);
400-
impl_property_by_godot_convert!(PackedVector2Array);
401-
impl_property_by_godot_convert!(PackedVector3Array);
402-
impl_property_by_godot_convert!(PackedColorArray);
394+
// We manually implement `Export`.
395+
impl_property_by_godot_convert!(PackedByteArray, no_export);
396+
impl_property_by_godot_convert!(PackedInt32Array, no_export);
397+
impl_property_by_godot_convert!(PackedInt64Array, no_export);
398+
impl_property_by_godot_convert!(PackedFloat32Array, no_export);
399+
impl_property_by_godot_convert!(PackedFloat64Array, no_export);
400+
impl_property_by_godot_convert!(PackedStringArray, no_export);
401+
impl_property_by_godot_convert!(PackedVector2Array, no_export);
402+
impl_property_by_godot_convert!(PackedVector3Array, no_export);
403+
impl_property_by_godot_convert!(PackedColorArray, no_export);
403404

404405
// Primitives
405406
impl_property_by_godot_convert!(f64);

0 commit comments

Comments
 (0)