MCPcopy
hub / github.com/4ian/GDevelop / handleUpdateGameMessagesToSend

Function handleUpdateGameMessagesToSend

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

Source from the content-addressed store, hash-verified

1807 };
1808
1809 const handleUpdateGameMessagesToSend = (
1810 runtimeScene: gdjs.RuntimeScene
1811 ): void => {
1812 if (!gdjs.multiplayer.isReadyToSendOrReceiveGameUpdateMessages()) {
1813 // Don't send messages if the multiplayer is not ready.
1814 return;
1815 }
1816
1817 const gameNetworkSyncData = runtimeScene.getGame().getNetworkSyncData({
1818 playerNumber: gdjs.multiplayer.getCurrentPlayerNumber(),
1819 isHost: gdjs.multiplayer.isCurrentPlayerHost(),
1820 });
1821 if (!gameNetworkSyncData) {
1822 return;
1823 }
1824
1825 const isGameSyncDataDifferent =
1826 isGameDifferentFromLastSync(gameNetworkSyncData);
1827 const shouldSyncGame =
1828 !hasGameBeenSyncedRecently() ||
1829 isGameSyncDataDifferent ||
1830 numberOfForcedGameUpdates > 0;
1831
1832 if (isGameSyncDataDifferent) {
1833 numberOfForcedGameUpdates = 3;
1834 }
1835
1836 if (!shouldSyncGame) {
1837 return;
1838 }
1839
1840 const connectedPeerIds = gdjs.multiplayerPeerJsHelper.getAllPeers();
1841 const { messageName, messageData } = createUpdateGameMessage({
1842 gameNetworkSyncData,
1843 });
1844
1845 sendDataTo(connectedPeerIds, messageName, messageData);
1846
1847 lastGameSyncTimestamp = getTimeNow();
1848 lastSentGameSyncData = gameNetworkSyncData;
1849 numberOfForcedGameUpdates = Math.max(numberOfForcedGameUpdates - 1, 0);
1850 };
1851
1852 const handleUpdateGameMessagesReceived = (
1853 runtimeScene: gdjs.RuntimeScene

Callers

nothing calls this directly

Calls 7

createUpdateGameMessageFunction · 0.85
sendDataToFunction · 0.70
getNetworkSyncDataMethod · 0.65
getGameMethod · 0.45
maxMethod · 0.45

Tested by

no test coverage detected