diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2022-02-07 15:24:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-07 15:24:32 +0100 |
commit | 8910d0bcb4a6c03acfbcb7ec4c585ed0f2e1f4d9 (patch) | |
tree | 66d47e2cd9778ddf51d6390044556e610f92de88 /modules/gdscript/gdscript.cpp | |
parent | be1adf491a6b40642cba186167e6635efca37f99 (diff) | |
parent | 086256431a958cb843e5d009749edb943dc8666f (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.cpp | 9 |
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; |