diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2018-11-22 19:34:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-22 19:34:41 +0100 |
commit | 7a9e4c26024e93fd5ab7a39fd62d63d5ea074d1a (patch) | |
tree | a310bcd6a49e5c7805b397d30e653364d4afbf01 | |
parent | da31d63f765d8797f2eaf0272ed88e2b4d7e77bb (diff) | |
parent | 34c4bfeb01be21298ac28429fb321a785d7ac5f3 (diff) |
Merge pull request #22953 from DualMatrix/properties_gone
Fixed parents export vars not appearing in inspector if parent is class_name.
-rw-r--r-- | modules/gdscript/gdscript.cpp | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index 159085df34..1f5f5035f9 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -421,31 +421,40 @@ bool GDScript::_update_exports() { base_cache = Ref<GDScript>(); } - if (c->extends_used && String(c->extends_file) != "" && String(c->extends_file) != get_path()) { - - String path = c->extends_file; - if (path.is_rel_path()) { - - String base = get_path(); - if (base == "" || base.is_rel_path()) { - - ERR_PRINT(("Could not resolve relative path for parent class: " + path).utf8().get_data()); - } else { - path = base.get_base_dir().plus_file(path); + if (c->extends_used) { + String path = ""; + if (String(c->extends_file) != "" && String(c->extends_file) != get_path()) { + path = c->extends_file; + if (path.is_rel_path()) { + + String base = get_path(); + if (base == "" || base.is_rel_path()) { + + ERR_PRINT(("Could not resolve relative path for parent class: " + path).utf8().get_data()); + } else { + path = base.get_base_dir().plus_file(path); + } } + } else if (c->extends_class.size() != 0) { + String base = c->extends_class[0]; + + if (ScriptServer::is_global_class(base)) + path = ScriptServer::get_global_class_path(base); } - if (path != get_path()) { + if (path != "") { + if (path != get_path()) { - Ref<GDScript> bf = ResourceLoader::load(path); + Ref<GDScript> bf = ResourceLoader::load(path); - if (bf.is_valid()) { + if (bf.is_valid()) { - base_cache = bf; - bf->inheriters_cache.insert(get_instance_id()); + base_cache = bf; + bf->inheriters_cache.insert(get_instance_id()); + } + } else { + ERR_PRINT(("Path extending itself in " + path).utf8().get_data()); } - } else { - ERR_PRINT(("Path extending itself in " + path).utf8().get_data()); } } |