summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript.cpp
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2022-02-07 15:24:32 +0100
committerGitHub <noreply@github.com>2022-02-07 15:24:32 +0100
commit8910d0bcb4a6c03acfbcb7ec4c585ed0f2e1f4d9 (patch)
tree66d47e2cd9778ddf51d6390044556e610f92de88 /modules/gdscript/gdscript.cpp
parentbe1adf491a6b40642cba186167e6635efca37f99 (diff)
parent086256431a958cb843e5d009749edb943dc8666f (diff)
Merge pull request #53704 from Faless/mp/4.x_gdscript_custom_callable
[GDScript] Implement RPC custom callable (`my_func.rpc()`)
Diffstat (limited to 'modules/gdscript/gdscript.cpp')
-rw-r--r--modules/gdscript/gdscript.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp
index a80874d785..58a788e255 100644
--- a/modules/gdscript/gdscript.cpp
+++ b/modules/gdscript/gdscript.cpp
@@ -43,6 +43,7 @@
#include "gdscript_cache.h"
#include "gdscript_compiler.h"
#include "gdscript_parser.h"
+#include "gdscript_rpc_callable.h"
#include "gdscript_warning.h"
#ifdef TESTS_ENABLED
@@ -1375,7 +1376,13 @@ bool GDScriptInstance::get(const StringName &p_name, Variant &r_ret) const {
while (sl) {
const Map<StringName, GDScriptFunction *>::Element *E = sl->member_functions.find(p_name);
if (E) {
- r_ret = Callable(this->owner, E->key());
+ Multiplayer::RPCConfig config;
+ config.name = p_name;
+ if (sptr->rpc_functions.find(config) != -1) {
+ r_ret = Callable(memnew(GDScriptRPCCallable(this->owner, E->key())));
+ } else {
+ r_ret = Callable(this->owner, E->key());
+ }
return true; //index found
}
sl = sl->_base;