You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
[Net] Add state sync to replicator.
Like the spawn/despawn feature, it can be completely overridden with 2 custom callables. The callables will be called with the list of tracked objects. In SERVER mode, objects are automatically tracked, while in CUSTOM mode you can manually track them via `track`/`untrack` (but that's optional). The default sync only happens from server to client, with batch updates, over unreliable channel (but with custom ordering). The default sync will warn you, if your state representation gets too big.
This commit is contained in:
@@ -140,6 +140,9 @@ void MultiplayerAPI::poll() {
|
||||
break; // It's also possible that a packet or RPC caused a disconnection, so also check here.
|
||||
}
|
||||
}
|
||||
if (network_peer.is_valid() && network_peer->get_connection_status() == MultiplayerPeer::CONNECTION_CONNECTED) {
|
||||
replicator->poll();
|
||||
}
|
||||
}
|
||||
|
||||
void MultiplayerAPI::clear() {
|
||||
@@ -326,6 +329,9 @@ void MultiplayerAPI::_process_packet(int p_from, const uint8_t *p_packet, int p_
|
||||
case NETWORK_COMMAND_DESPAWN: {
|
||||
replicator->process_spawn_despawn(p_from, p_packet, p_packet_len, false);
|
||||
} break;
|
||||
case NETWORK_COMMAND_SYNC: {
|
||||
replicator->process_sync(p_from, p_packet, p_packet_len);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user