Now the inspector will show the custom resources added via plugin

This commit is contained in:
MrCdK 2018-02-25 01:41:26 +01:00
parent 3647ebc834
commit 97e77688bb
4 changed files with 70 additions and 23 deletions

View file

@ -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()) {