You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Fetch extension class props from ClassDB
Extension class properties that have been registered with ClassDB(`GDNativeInterface::classdb_register_extension_class_property`) were not fetched previously. (Only directly providing a property list using `GDNativeExtensionClassCreationInfo::get_property_list_func` would work.) This especially caused problems with the C++ bindings since they exclusively rely on ClassDB to register properties.
This commit is contained in:
@@ -628,7 +628,10 @@ void Object::get_property_list(List<PropertyInfo> *p_list, bool p_reversed) cons
|
|||||||
script_instance->get_property_list(p_list);
|
script_instance->get_property_list(p_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
_get_property_listv(p_list, p_reversed);
|
if (_extension) {
|
||||||
|
p_list->push_back(PropertyInfo(Variant::NIL, _extension->class_name, PROPERTY_HINT_NONE, String(), PROPERTY_USAGE_CATEGORY));
|
||||||
|
ClassDB::get_property_list(_extension->class_name, p_list, true, this);
|
||||||
|
}
|
||||||
|
|
||||||
if (_extension && _extension->get_property_list) {
|
if (_extension && _extension->get_property_list) {
|
||||||
uint32_t pcount;
|
uint32_t pcount;
|
||||||
@@ -641,6 +644,8 @@ void Object::get_property_list(List<PropertyInfo> *p_list, bool p_reversed) cons
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_get_property_listv(p_list, p_reversed);
|
||||||
|
|
||||||
if (!is_class("Script")) { // can still be set, but this is for user-friendliness
|
if (!is_class("Script")) { // can still be set, but this is for user-friendliness
|
||||||
p_list->push_back(PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, "Script", PROPERTY_USAGE_DEFAULT));
|
p_list->push_back(PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, "Script", PROPERTY_USAGE_DEFAULT));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user