[Net] Implement GDScript custom RPC callable.

This commit is contained in:
Fabio Alessandrelli
2021-10-07 14:39:52 +02:00
parent 1694626e03
commit 994638da4f
3 changed files with 148 additions and 1 deletions

View File

@ -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;