Merge pull request #73626 from Faless/mp/4.x_synced_signal

[MP] Add a "synchronized" signal to MultiplayerSynchronized.
This commit is contained in:
Rémi Verschelde 2023-02-20 15:41:55 +01:00
commit dfdda96294
No known key found for this signature in database
GPG Key ID: C3336907360768E1
3 changed files with 7 additions and 0 deletions

View File

@ -69,6 +69,11 @@
</member>
</members>
<signals>
<signal name="synchronized">
<description>
Emitted when a new synchronization state is received by this synchronizer after the variables have been updated.
</description>
</signal>
<signal name="visibility_changed">
<param index="0" name="for_peer" type="int" />
<description>

View File

@ -268,6 +268,7 @@ void MultiplayerSynchronizer::_bind_methods() {
BIND_ENUM_CONSTANT(VISIBILITY_PROCESS_PHYSICS);
BIND_ENUM_CONSTANT(VISIBILITY_PROCESS_NONE);
ADD_SIGNAL(MethodInfo("synchronized"));
ADD_SIGNAL(MethodInfo("visibility_changed", PropertyInfo(Variant::INT, "for_peer")));
}

View File

@ -775,6 +775,7 @@ Error SceneReplicationInterface::on_sync_receive(int p_from, const uint8_t *p_bu
err = MultiplayerSynchronizer::set_state(props, node, vars);
ERR_FAIL_COND_V(err, err);
ofs += size;
sync->emit_signal(SNAME("synchronized"));
#ifdef DEBUG_ENABLED
_profile_node_data("sync_in", sync->get_instance_id(), size);
#endif