From 37e74ae52c3dd5181b0f085de027cb808be7d77f Mon Sep 17 00:00:00 2001 From: Romain Beaumont Date: Sat, 5 Sep 2015 20:03:10 +0200 Subject: [PATCH] use prismarine-world : flying-squid has now 9 chunk columns --- config/settings.json | 2 +- lib/playerPlugins/blocks.js | 2 +- lib/playerPlugins/digging.js | 14 +++++++------- lib/playerPlugins/login.js | 14 ++++++++------ lib/serverPlugins/world.js | 22 ++++++++++++++++------ package.json | 3 ++- 6 files changed, 35 insertions(+), 22 deletions(-) diff --git a/config/settings.json b/config/settings.json index 16085fb..1fb4348 100644 --- a/config/settings.json +++ b/config/settings.json @@ -4,5 +4,5 @@ "maxPlayers": 10, "onlineMode": true, "logging": true, - "gameMode": 0 + "gameMode": 1 } diff --git a/lib/playerPlugins/blocks.js b/lib/playerPlugins/blocks.js index 72a928e..7602a19 100644 --- a/lib/playerPlugins/blocks.js +++ b/lib/playerPlugins/blocks.js @@ -8,7 +8,7 @@ function inject(serv,player) location:position, type:blockType<<4 }); - serv.world.setBlockType(position.x,position.y,position.z,blockType); + serv.world.setBlockType(position,blockType); } player.changeBlock=changeBlock; diff --git a/lib/playerPlugins/digging.js b/lib/playerPlugins/digging.js index b4567ec..ff8c63e 100644 --- a/lib/playerPlugins/digging.js +++ b/lib/playerPlugins/digging.js @@ -1,21 +1,21 @@ -var Block=require("prismarine-block")(require("../version")); +var Vec3 = require("vec3"); module.exports=inject; function inject(serv,player) { player._client.on("block_dig",function(packet){ - var b=serv.world.getBlock(packet.location.x,packet.location.y,packet.location.z); - currentlyDugBlock=new Block(b.id, b.biome, b.data); + var pos=new Vec3(packet.location); + currentlyDugBlock=serv.world.getBlock(pos); if(currentlyDugBlock.type==0) return; if(packet.status==0 && player.gameMode!=1) - startDigging(packet.location); + startDigging(pos); else if(packet.status==2) - completeDigging(packet.location); + completeDigging(pos); else if(packet.status==1) - cancelDigging(packet.location); + cancelDigging(pos); else if(packet.status==0 && player.gameMode==1) - creativeDigging(packet.location); + creativeDigging(pos); }); function diggingTime(location) diff --git a/lib/playerPlugins/login.js b/lib/playerPlugins/login.js index ee2930f..933c1c9 100644 --- a/lib/playerPlugins/login.js +++ b/lib/playerPlugins/login.js @@ -43,12 +43,14 @@ function inject(serv,player) } function sendMap() { - player._client.write('map_chunk', { - x: 0, - z: 0, - groundUp: true, - bitMap: 0xffff, - chunkData: serv.world.dump() + serv.world.getColumns().forEach(function(column){ + player._client.write('map_chunk', { + x: column.chunkX, + z: column.chunkZ, + groundUp: true, + bitMap: 0xffff, + chunkData: column.column.dump() + }); }); } diff --git a/lib/serverPlugins/world.js b/lib/serverPlugins/world.js index 0762581..a2fb75b 100644 --- a/lib/serverPlugins/world.js +++ b/lib/serverPlugins/world.js @@ -1,4 +1,6 @@ -var World = require('prismarine-chunk'); +var Chunk = require('prismarine-chunk')(require("../version")); +var World = require('prismarine-world'); +var Vec3 = require('vec3'); module.exports=inject; @@ -6,12 +8,20 @@ function inject(serv) { serv.world=new World(); - for (var x = 0; x < 16;x++) { - for (var z = 0; z < 16; z++) { - serv.world.setBlockType(x, 50, z, 2); - for (var y = 0; y < 256; y++) { - serv.world.setSkyLight(x, y, z, 15); + for(var chunkX=-1;chunkX<2;chunkX++) + { + for(var chunkZ=-1;chunkZ<2;chunkZ++) + { + var chunk=new Chunk(); + for (var x = 0; x < 16;x++) { + for (var z = 0; z < 16; z++) { + chunk.setBlockType(new Vec3(x, 50, z), 2); + for (var y = 0; y < 256; y++) { + chunk.setSkyLight(new Vec3(x, y, z), 15); + } + } } + serv.world.setColumn(chunkX,chunkZ,chunk); } } } \ No newline at end of file diff --git a/package.json b/package.json index e7ee184..53f7434 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "buffers": "0.1.1", "mocha": "~2.2.5", "chai": "~3.2.0", - "prismarine-chunk": "~0.1.0", + "prismarine-chunk": "git://github.com/rom1504/prismarine-chunk.git#use-prismarine-block", + "prismarine-world": "git://github.com/rom1504/prismarine-world.git#implementation", "vec3": "0.1.3", "requireindex": "~1.0.0", "prismarine-block": "0.1.0",