You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 12:40:44 +00:00
Support arrays of StringName, NodePath and RID in mono
This commit is contained in:
@@ -181,6 +181,18 @@ Variant::Type managed_to_variant_type(const ManagedType &p_type, bool *r_nil_is_
|
|||||||
return Variant::PACKED_COLOR_ARRAY;
|
return Variant::PACKED_COLOR_ARRAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(StringName)) {
|
||||||
|
return Variant::ARRAY;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(NodePath)) {
|
||||||
|
return Variant::ARRAY;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(RID)) {
|
||||||
|
return Variant::ARRAY;
|
||||||
|
}
|
||||||
|
|
||||||
GDMonoClass *array_type_class = GDMono::get_singleton()->get_class(array_type->eklass);
|
GDMonoClass *array_type_class = GDMono::get_singleton()->get_class(array_type->eklass);
|
||||||
if (CACHED_CLASS(GodotObject)->is_assignable_from(array_type_class)) {
|
if (CACHED_CLASS(GodotObject)->is_assignable_from(array_type_class)) {
|
||||||
return Variant::ARRAY;
|
return Variant::ARRAY;
|
||||||
@@ -361,6 +373,18 @@ MonoArray *variant_to_mono_array(const Variant &p_var, GDMonoClass *p_type_class
|
|||||||
return PackedColorArray_to_mono_array(p_var.operator PackedColorArray());
|
return PackedColorArray_to_mono_array(p_var.operator PackedColorArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(StringName)) {
|
||||||
|
return Array_to_mono_array(p_var.operator Array());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(NodePath)) {
|
||||||
|
return Array_to_mono_array(p_var.operator Array());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(RID)) {
|
||||||
|
return Array_to_mono_array(p_var.operator Array());
|
||||||
|
}
|
||||||
|
|
||||||
if (mono_class_is_assignable_from(CACHED_CLASS(GodotObject)->get_mono_ptr(), array_type->eklass)) {
|
if (mono_class_is_assignable_from(CACHED_CLASS(GodotObject)->get_mono_ptr(), array_type->eklass)) {
|
||||||
return Array_to_mono_array(p_var.operator ::Array(), array_type->eklass);
|
return Array_to_mono_array(p_var.operator ::Array(), array_type->eklass);
|
||||||
}
|
}
|
||||||
@@ -1118,6 +1142,18 @@ Variant mono_object_to_variant_impl(MonoObject *p_obj, const ManagedType &p_type
|
|||||||
return mono_array_to_PackedColorArray((MonoArray *)p_obj);
|
return mono_array_to_PackedColorArray((MonoArray *)p_obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(StringName)) {
|
||||||
|
return mono_array_to_Array((MonoArray *)p_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(NodePath)) {
|
||||||
|
return mono_array_to_Array((MonoArray *)p_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_type->eklass == CACHED_CLASS_RAW(RID)) {
|
||||||
|
return mono_array_to_Array((MonoArray *)p_obj);
|
||||||
|
}
|
||||||
|
|
||||||
GDMonoClass *array_type_class = GDMono::get_singleton()->get_class(array_type->eklass);
|
GDMonoClass *array_type_class = GDMono::get_singleton()->get_class(array_type->eklass);
|
||||||
if (CACHED_CLASS(GodotObject)->is_assignable_from(array_type_class)) {
|
if (CACHED_CLASS(GodotObject)->is_assignable_from(array_type_class)) {
|
||||||
return mono_array_to_Array((MonoArray *)p_obj);
|
return mono_array_to_Array((MonoArray *)p_obj);
|
||||||
|
|||||||
Reference in New Issue
Block a user