Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 8 additions & 17 deletions core/io/resource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -416,21 +416,15 @@ void Resource::_take_over_path(const String &p_path) {
}

RID Resource::get_rid() const {
if (get_script_instance()) {
Callable::CallError ce;
RID ret = get_script_instance()->callp(SNAME("_get_rid"), nullptr, 0, ce);
if (ce.error == Callable::CallError::CALL_OK && ret.is_valid()) {
return ret;
}
}
if (_get_extension() && _get_extension()->get_rid) {
RID ret = RID::from_uint64(_get_extension()->get_rid(_get_extension_instance()));
if (ret.is_valid()) {
return ret;
RID ret;
if (!GDVIRTUAL_CALL(_get_rid, ret)) {
#ifndef DISABLE_DEPRECATED
if (_get_extension() && _get_extension()->get_rid) {
ret = RID::from_uint64(_get_extension()->get_rid(_get_extension_instance()));
}
#endif
}

return RID();
return ret;
}

#ifdef TOOLS_ENABLED
Expand Down Expand Up @@ -558,11 +552,8 @@ void Resource::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::STRING, "resource_name"), "set_name", "get_name");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "resource_scene_unique_id", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_scene_unique_id", "get_scene_unique_id");

MethodInfo get_rid_bind("_get_rid");
get_rid_bind.return_val.type = Variant::RID;

::ClassDB::add_virtual_method(get_class_static(), get_rid_bind, true, Vector<String>(), true);
GDVIRTUAL_BIND(_setup_local_to_scene);
GDVIRTUAL_BIND(_get_rid);
}

Resource::Resource() :
Expand Down
2 changes: 2 additions & 0 deletions core/io/resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ class Resource : public RefCounted {
virtual void reset_local_to_scene();
GDVIRTUAL0(_setup_local_to_scene);

GDVIRTUAL0RC(RID, _get_rid);

public:
static Node *(*_get_local_scene_func)(); //used by editor
static void (*_update_configuration_warning)(); //used by editor
Expand Down
2 changes: 1 addition & 1 deletion doc/classes/Resource.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<link title="When and how to avoid using nodes for everything">$DOCS_URL/tutorials/best_practices/node_alternatives.html</link>
</tutorials>
<methods>
<method name="_get_rid" qualifiers="virtual">
<method name="_get_rid" qualifiers="virtual const">
<return type="RID" />
<description>
Override this method to return a custom [RID] when [method get_rid] is called.
Expand Down
4 changes: 0 additions & 4 deletions editor/plugins/script_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4412,13 +4412,9 @@ bool ScriptEditorPlugin::handles(Object *p_object) const {
void ScriptEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
window_wrapper->show();
script_editor->set_process(true);
script_editor->ensure_select_current();
} else {
window_wrapper->hide();
if (!window_wrapper->get_window_enabled()) {
script_editor->set_process(false);
}
}
}

Expand Down
Loading