(
runtimeScene: gdjs.RuntimeScene
)
| 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 |
nothing calls this directly
no test coverage detected