diff options
author | MrCdK <contact@mrcdk.com> | 2018-02-25 01:41:26 +0100 |
---|---|---|
committer | MrCdK <contact@mrcdk.com> | 2018-02-25 01:41:26 +0100 |
commit | 97e77688bb97e5930525ba14c884c3a9e6fc73d5 (patch) | |
tree | 59dd5baa140bf9135b54271093f3ac12678fa4e9 /editor/editor_data.cpp | |
parent | 3647ebc8341ea22dce07d7eb5e47ece8d29c5565 (diff) |
Now the inspector will show the custom resources added via plugin
Diffstat (limited to 'editor/editor_data.cpp')
-rw-r--r-- | editor/editor_data.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 95ed40d889..ef9265ecd2 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -452,6 +452,31 @@ void EditorData::add_custom_type(const String &p_type, const String &p_inherits, custom_types[p_inherits].push_back(ct); } +Object *EditorData::instance_custom_type(const String &p_type, const String &p_inherits) { + + if (get_custom_types().has(p_inherits)) { + + for (int i = 0; i < get_custom_types()[p_inherits].size(); i++) { + if (get_custom_types()[p_inherits][i].name == p_type) { + Ref<Texture> icon = get_custom_types()[p_inherits][i].icon; + Ref<Script> script = get_custom_types()[p_inherits][i].script; + + Object *ob = ClassDB::instance(p_inherits); + ERR_FAIL_COND_V(!ob, NULL); + if (ob->is_class("Node")) { + ob->call("set_name", p_type); + } + ob->set_script(script.get_ref_ptr()); + if (icon.is_valid()) + ob->set_meta("_editor_icon", icon); + return ob; + } + } + } + + return NULL; +} + void EditorData::remove_custom_type(const String &p_type) { for (Map<String, Vector<CustomType> >::Element *E = custom_types.front(); E; E = E->next()) { |