Stopped trying to revert to default values when script implementation of property_can_revert exists

This commit is contained in:
Eric M 2020-05-03 16:54:34 +10:00
parent f5cd33f39d
commit 27ada5c114
1 changed files with 14 additions and 12 deletions

View File

@ -501,18 +501,20 @@ bool EditorPropertyRevert::can_property_revert(Object *p_object, const StringNam
} }
} }
if (p_object->call("property_can_revert", p_property).operator bool()) { // If the object implements property_can_revert, rely on that completely
// (i.e. don't then try to revert to default value - the property_get_revert implementation
has_revert = true; // can do that if so desired)
} if (p_object->has_method("property_can_revert")) {
has_revert = p_object->call("property_can_revert", p_property).operator bool();
if (!has_revert && !p_object->get_script().is_null()) { } else {
Ref<Script> scr = p_object->get_script(); if (!has_revert && !p_object->get_script().is_null()) {
if (scr.is_valid()) { Ref<Script> scr = p_object->get_script();
Variant orig_value; if (scr.is_valid()) {
if (scr->get_property_default_value(p_property, orig_value)) { Variant orig_value;
if (orig_value != p_object->get(p_property)) { if (scr->get_property_default_value(p_property, orig_value)) {
has_revert = true; if (orig_value != p_object->get(p_property)) {
has_revert = true;
}
} }
} }
} }