mirror of
https://github.com/godotengine/godot.git
synced 2025-11-09 10:01:15 +00:00
Merge pull request #63049 from Faless/mp/4.x_as_module
This commit is contained in:
commit
14d021287b
80 changed files with 1819 additions and 1388 deletions
|
|
@ -954,8 +954,8 @@ void GDScript::get_members(HashSet<StringName> *p_members) {
|
|||
}
|
||||
}
|
||||
|
||||
const Vector<Multiplayer::RPCConfig> GDScript::get_rpc_methods() const {
|
||||
return rpc_functions;
|
||||
const Variant GDScript::get_rpc_config() const {
|
||||
return rpc_config;
|
||||
}
|
||||
|
||||
Variant GDScript::callp(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
|
|
@ -1212,9 +1212,9 @@ void GDScript::_save_orphaned_subclasses() {
|
|||
|
||||
void GDScript::_init_rpc_methods_properties() {
|
||||
// Copy the base rpc methods so we don't mask their IDs.
|
||||
rpc_functions.clear();
|
||||
rpc_config.clear();
|
||||
if (base.is_valid()) {
|
||||
rpc_functions = base->rpc_functions;
|
||||
rpc_config = base->rpc_config.duplicate();
|
||||
}
|
||||
|
||||
GDScript *cscript = this;
|
||||
|
|
@ -1222,12 +1222,9 @@ void GDScript::_init_rpc_methods_properties() {
|
|||
while (cscript) {
|
||||
// RPC Methods
|
||||
for (KeyValue<StringName, GDScriptFunction *> &E : cscript->member_functions) {
|
||||
Multiplayer::RPCConfig config = E.value->get_rpc_config();
|
||||
if (config.rpc_mode != Multiplayer::RPC_MODE_DISABLED) {
|
||||
config.name = E.value->get_name();
|
||||
if (rpc_functions.find(config) == -1) {
|
||||
rpc_functions.push_back(config);
|
||||
}
|
||||
Variant config = E.value->get_rpc_config();
|
||||
if (config.get_type() != Variant::NIL) {
|
||||
rpc_config[E.value->get_name()] = config;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1241,9 +1238,6 @@ void GDScript::_init_rpc_methods_properties() {
|
|||
cscript = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
// Sort so we are 100% that they are always the same.
|
||||
rpc_functions.sort_custom<Multiplayer::SortRPCConfig>();
|
||||
}
|
||||
|
||||
GDScript::~GDScript() {
|
||||
|
|
@ -1408,9 +1402,7 @@ bool GDScriptInstance::get(const StringName &p_name, Variant &r_ret) const {
|
|||
while (sl) {
|
||||
HashMap<StringName, GDScriptFunction *>::ConstIterator E = sl->member_functions.find(p_name);
|
||||
if (E) {
|
||||
Multiplayer::RPCConfig config;
|
||||
config.name = p_name;
|
||||
if (sptr->rpc_functions.find(config) != -1) {
|
||||
if (sptr->rpc_config.has(p_name)) {
|
||||
r_ret = Callable(memnew(GDScriptRPCCallable(this->owner, E->key)));
|
||||
} else {
|
||||
r_ret = Callable(this->owner, E->key);
|
||||
|
|
@ -1629,8 +1621,8 @@ ScriptLanguage *GDScriptInstance::get_language() {
|
|||
return GDScriptLanguage::get_singleton();
|
||||
}
|
||||
|
||||
const Vector<Multiplayer::RPCConfig> GDScriptInstance::get_rpc_methods() const {
|
||||
return script->get_rpc_methods();
|
||||
const Variant GDScriptInstance::get_rpc_config() const {
|
||||
return script->get_rpc_config();
|
||||
}
|
||||
|
||||
void GDScriptInstance::reload_members() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue