summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-09-27 14:03:28 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-09-27 14:03:28 +0200
commit19057c07bc10261fce936541757c587755531d0c (patch)
tree0d2593705f4bfae8acb0221d4808e515cb6d9ed8 /core
parent545d1c0adbf340310e1531710eb31bd5267704d5 (diff)
parent79ce0c6e8052c065d88dbce5a2b7ff0d63fac3a7 (diff)
downloadredot-engine-19057c07bc10261fce936541757c587755531d0c.tar.gz
Merge pull request #67080 from Mickeon/resource-virtual-local-to-scene-setup
Reimplement Resource.`_setup_local_to_scene` & deprecate signal
Diffstat (limited to 'core')
-rw-r--r--core/io/resource.cpp3
-rw-r--r--core/io/resource.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/core/io/resource.cpp b/core/io/resource.cpp
index 68cdeabac7..e0d42a274a 100644
--- a/core/io/resource.cpp
+++ b/core/io/resource.cpp
@@ -379,8 +379,8 @@ Node *Resource::get_local_scene() const {
}
void Resource::setup_local_to_scene() {
- // Can't use GDVIRTUAL in Resource, so this will have to be done with a signal
emit_signal(SNAME("setup_local_to_scene_requested"));
+ GDVIRTUAL_CALL(_setup_local_to_scene);
}
void Resource::reset_local_to_scene() {
@@ -460,6 +460,7 @@ void Resource::_bind_methods() {
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);
}
Resource::Resource() :
diff --git a/core/io/resource.h b/core/io/resource.h
index f848bdba99..a9b1a88f6b 100644
--- a/core/io/resource.h
+++ b/core/io/resource.h
@@ -33,6 +33,7 @@
#include "core/io/resource_uid.h"
#include "core/object/class_db.h"
+#include "core/object/gdvirtual.gen.inc"
#include "core/object/ref_counted.h"
#include "core/templates/safe_refcount.h"
#include "core/templates/self_list.h"
@@ -81,6 +82,7 @@ protected:
void _take_over_path(const String &p_path);
virtual void reset_local_to_scene();
+ GDVIRTUAL0(_setup_local_to_scene);
public:
static Node *(*_get_local_scene_func)(); //used by editor