Merge pull request #8333 from touilleMan/classdb-class_sget_property-binding

Add _ClassDB.class_[g|s]et_property to ClassDB exposed methods
This commit is contained in:
Rémi Verschelde 2017-04-09 17:46:35 +02:00 committed by GitHub
commit f29dc079dc
2 changed files with 21 additions and 0 deletions

View file

@ -2367,6 +2367,23 @@ Array _ClassDB::get_property_list(StringName p_class, bool p_no_inheritance) con
return ret; return ret;
} }
Variant _ClassDB::get_property(Object *p_object, const StringName &p_property) const {
Variant ret;
ClassDB::get_property(p_object, p_property, ret);
return ret;
}
Error _ClassDB::set_property(Object *p_object, const StringName &p_property, const Variant &p_value) const {
Variant ret;
bool valid;
if (!ClassDB::set_property(p_object, p_property, p_value, &valid)) {
return ERR_UNAVAILABLE;
} else if (!valid) {
return ERR_INVALID_DATA;
}
return OK;
}
bool _ClassDB::has_method(StringName p_class, StringName p_method, bool p_no_inheritance) const { bool _ClassDB::has_method(StringName p_class, StringName p_method, bool p_no_inheritance) const {
return ClassDB::has_method(p_class, p_method, p_no_inheritance); return ClassDB::has_method(p_class, p_method, p_no_inheritance);
@ -2439,6 +2456,8 @@ void _ClassDB::_bind_methods() {
ClassDB::bind_method(D_METHOD("class_get_signal_list", "class", "no_inheritance"), &_ClassDB::get_signal_list, DEFVAL(false)); ClassDB::bind_method(D_METHOD("class_get_signal_list", "class", "no_inheritance"), &_ClassDB::get_signal_list, DEFVAL(false));
ClassDB::bind_method(D_METHOD("class_get_property_list", "class", "no_inheritance"), &_ClassDB::get_property_list, DEFVAL(false)); ClassDB::bind_method(D_METHOD("class_get_property_list", "class", "no_inheritance"), &_ClassDB::get_property_list, DEFVAL(false));
ClassDB::bind_method(D_METHOD("class_get_property:Variant", "object", "property"), &_ClassDB::get_property);
ClassDB::bind_method(D_METHOD("class_set_property:Error", "object", "property", "value"), &_ClassDB::set_property);
ClassDB::bind_method(D_METHOD("class_has_method", "class", "method", "no_inheritance"), &_ClassDB::has_method, DEFVAL(false)); ClassDB::bind_method(D_METHOD("class_has_method", "class", "method", "no_inheritance"), &_ClassDB::has_method, DEFVAL(false));

View file

@ -587,6 +587,8 @@ public:
Array get_signal_list(StringName p_class, bool p_no_inheritance = false) const; Array get_signal_list(StringName p_class, bool p_no_inheritance = false) const;
Array get_property_list(StringName p_class, bool p_no_inheritance = false) const; Array get_property_list(StringName p_class, bool p_no_inheritance = false) const;
Variant get_property(Object *p_object, const StringName &p_property) const;
Error set_property(Object *p_object, const StringName &p_property, const Variant &p_value) const;
bool has_method(StringName p_class, StringName p_method, bool p_no_inheritance = false) const; bool has_method(StringName p_class, StringName p_method, bool p_no_inheritance = false) const;