From 12620716e7cb30554bc6380e33c8758576df340b Mon Sep 17 00:00:00 2001 From: Romain Beaumont Date: Fri, 6 Nov 2015 22:11:52 +0100 Subject: [PATCH] only wait between each chunk after the initial map was sent --- src/lib/playerPlugins/world.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib/playerPlugins/world.js b/src/lib/playerPlugins/world.js index 4758857..6944826 100644 --- a/src/lib/playerPlugins/world.js +++ b/src/lib/playerPlugins/world.js @@ -40,7 +40,7 @@ function inject(serv, player) { return t; } - player.sendNearbyChunks = view => + player.sendNearbyChunks = (view,group) => { player.lastPositionChunkUpdated=player.entity.position; var playerChunkX=Math.floor(player.entity.position.x/16/32); @@ -57,11 +57,12 @@ function inject(serv, player) { if(!loaded) player.loadedChunks[key]=1; return !loaded; }) - .reduce((acc,{chunkX,chunkZ})=> - acc - .then(() => player.world.getColumn(chunkX,chunkZ)) - .then((column) => player.sendChunk(chunkX,chunkZ,column)) - .then(() => sleep(5)) + .reduce((acc,{chunkX,chunkZ},i)=> { + var p=acc + .then(() => player.world.getColumn(chunkX, chunkZ)) + .then((column) => player.sendChunk(chunkX, chunkZ, column)); + return group ? p.then(() => sleep(5)) : p; + } ,Promise.resolve()); }; @@ -78,7 +79,7 @@ function inject(serv, player) { player.sendRestMap = () => { player.sendingChunks=true; - player.sendNearbyChunks(player.view) + player.sendNearbyChunks(player.view,true) .then(() => player.sendingChunks=false) .catch((err)=> setTimeout(() => {throw err;},0)); };