MCPcopy Index your code
hub / github.com/4ian/GDevelop / handleUpdateSceneMessagesToSend

Function handleUpdateSceneMessagesToSend

Extensions/Multiplayer/messageManager.ts:1646–1687  ·  view source on GitHub ↗
(
      runtimeScene: gdjs.RuntimeScene
    )

Source from the content-addressed store, hash-verified

1644 };
1645
1646 const handleUpdateSceneMessagesToSend = (
1647 runtimeScene: gdjs.RuntimeScene
1648 ): void => {
1649 if (!gdjs.multiplayer.isReadyToSendOrReceiveGameUpdateMessages()) {
1650 // Don't send messages if the multiplayer is not ready.
1651 return;
1652 }
1653
1654 const sceneNetworkSyncData = runtimeScene.getNetworkSyncData({
1655 playerNumber: gdjs.multiplayer.getCurrentPlayerNumber(),
1656 isHost: gdjs.multiplayer.isCurrentPlayerHost(),
1657 });
1658 if (!sceneNetworkSyncData) {
1659 return;
1660 }
1661
1662 const isSceneSyncDataDifferent =
1663 isSceneDifferentFromLastSync(sceneNetworkSyncData);
1664 const shouldSyncScene =
1665 !hasSceneBeenSyncedRecently() ||
1666 isSceneSyncDataDifferent ||
1667 numberOfForcedSceneUpdates > 0;
1668
1669 if (isSceneSyncDataDifferent) {
1670 numberOfForcedSceneUpdates = 3;
1671 }
1672
1673 if (!shouldSyncScene) {
1674 return;
1675 }
1676
1677 const connectedPeerIds = gdjs.multiplayerPeerJsHelper.getAllPeers();
1678 const { messageName, messageData } = createUpdateSceneMessage({
1679 sceneNetworkSyncData,
1680 });
1681
1682 sendDataTo(connectedPeerIds, messageName, messageData);
1683
1684 lastSceneSyncTimestamp = getTimeNow();
1685 lastSentSceneSyncData = sceneNetworkSyncData;
1686 numberOfForcedSceneUpdates = Math.max(numberOfForcedSceneUpdates - 1, 0);
1687 };
1688
1689 const handleUpdateSceneMessagesReceived = (
1690 runtimeScene: gdjs.RuntimeScene

Callers

nothing calls this directly

Calls 6

createUpdateSceneMessageFunction · 0.85
sendDataToFunction · 0.70
getNetworkSyncDataMethod · 0.65
maxMethod · 0.45

Tested by

no test coverage detected