diff options
author | Dani Frank <pdaniq@gmail.com> | 2020-01-14 17:33:33 +0200 |
---|---|---|
committer | Dani Frank <pdaniq@gmail.com> | 2020-01-14 17:33:33 +0200 |
commit | d6f10cd08e795cdbf5fcf07149b584c47a236cf4 (patch) | |
tree | c168fdabcf2f3621c21ece4937682248e4f8f373 | |
parent | dc0f43a1c2218990d36add82be1feb2dacaa5796 (diff) | |
download | redot-engine-d6f10cd08e795cdbf5fcf07149b584c47a236cf4.tar.gz |
Add fully_qualified_name for GDScript class
-rw-r--r-- | modules/gdscript/gdscript.h | 1 | ||||
-rw-r--r-- | modules/gdscript/gdscript_compiler.cpp | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript.h b/modules/gdscript/gdscript.h index 72389cdddc..0e2b812a22 100644 --- a/modules/gdscript/gdscript.h +++ b/modules/gdscript/gdscript.h @@ -111,6 +111,7 @@ class GDScript : public Script { String source; String path; String name; + String fully_qualified_name; SelfList<GDScript> script_list; GDScriptInstance *_create_instance(const Variant **p_args, int p_argcount, Object *p_owner, bool p_isref, Variant::CallError &r_error); diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp index 7b3175d9cd..711fa54d0b 100644 --- a/modules/gdscript/gdscript_compiler.cpp +++ b/modules/gdscript/gdscript_compiler.cpp @@ -2131,6 +2131,7 @@ void GDScriptCompiler::_make_scripts(GDScript *p_script, const GDScriptParser::C } subclass->_owner = p_script; + subclass->fully_qualified_name = p_script->fully_qualified_name + "::" + name; p_script->subclasses.insert(name, subclass); _make_scripts(subclass.ptr(), p_class->subclasses[i], false); @@ -2149,6 +2150,9 @@ Error GDScriptCompiler::compile(const GDScriptParser *p_parser, GDScript *p_scri source = p_script->get_path(); + // The best fully qualified name for a base level script is its file path + p_script->fully_qualified_name = p_script->path; + // Create scripts for subclasses beforehand so they can be referenced _make_scripts(p_script, static_cast<const GDScriptParser::ClassNode *>(root), p_keep_state); |