diff --git a/config/settings.json b/config/settings.json index 959b069..a27062b 100644 --- a/config/settings.json +++ b/config/settings.json @@ -5,5 +5,10 @@ "onlineMode": true, "logging": true, "gameMode": 1, - "generation":"diamond_square" + "generation": { + "name":"diamond_square", + "options":{ + "worldHeight":80 + } + } } diff --git a/src/lib/serverPlugins/settings.js b/src/lib/serverPlugins/settings.js index 359bd86..51cc4ef 100644 --- a/src/lib/serverPlugins/settings.js +++ b/src/lib/serverPlugins/settings.js @@ -5,5 +5,5 @@ module.exports=inject; function inject(serv,settings) { serv.gameMode=settings.gameMode; - serv.spawnPoints=[new vec3(6,138,6),new vec3(3,138,6),new vec3(8,138,6)]; + serv.spawnPoints=[new vec3(6,81,6),new vec3(3,81,6),new vec3(8,81,6)]; } diff --git a/src/lib/serverPlugins/world.js b/src/lib/serverPlugins/world.js index 7d3a44d..de60e6a 100644 --- a/src/lib/serverPlugins/world.js +++ b/src/lib/serverPlugins/world.js @@ -10,5 +10,5 @@ var generations={ module.exports = inject; function inject(serv,options) { - serv.world = new World(generations[options["generation"]]); + serv.world = new World(generations[options["generation"].name](options["generation"].options)); } diff --git a/src/lib/worldGenerations/diamond_square.js b/src/lib/worldGenerations/diamond_square.js index 443c09e..73cba30 100644 --- a/src/lib/worldGenerations/diamond_square.js +++ b/src/lib/worldGenerations/diamond_square.js @@ -93,35 +93,39 @@ function DiamondSquare(size, roughness, seed) { } } +function generation(options) { + var worldHeight=options.worldHeight || 80; // Selected empirically -var size = 10000000; -var space = new DiamondSquare(size, size/1000, Math.random() * 10000); + var size = 10000000; + var space = new DiamondSquare(size, size / 1000, Math.random() * 10000); -function generateSimpleChunk(chunkX, chunkZ) { - var chunk = new Chunk(); + function generateSimpleChunk(chunkX, chunkZ) { + var chunk = new Chunk(); - var worldX = chunkX * 16 + size/2; - var worldZ = chunkZ * 16 + size/2; + var worldX = chunkX * 16 + size / 2; + var worldZ = chunkZ * 16 + size / 2; - for (var x = 0; x < 16;x++) { - for (var z = 0; z < 16; z++) { - var level = Math.floor(space.value(worldX + x, worldZ + z) * 138); - for (var y = 0; y < 256; y++) { - let block; + for (var x = 0; x < 16; x++) { + for (var z = 0; z < 16; z++) { + var level = Math.floor(space.value(worldX + x, worldZ + z) * worldHeight); + for (var y = 0; y < 256; y++) { + let block; - if(y == 0) block = 7; - else if(y < level) block = 3; - else if (y == level) block = 2; - else if (y < 20) block = 9; + if (y == 0) block = 7; + else if (y < level) block = 3; + else if (y == level) block = 2; + else if (y < 20) block = 9; - if(block) chunk.setBlockType(new Vec3(x, y, z), block); + if (block) chunk.setBlockType(new Vec3(x, y, z), block); - chunk.setSkyLight(new Vec3(x, y, z), 15); + chunk.setSkyLight(new Vec3(x, y, z), 15); + } } } - } - return chunk; + return chunk; + } + return generateSimpleChunk; } -module.exports=generateSimpleChunk; +module.exports=generation; diff --git a/src/lib/worldGenerations/grass_field.js b/src/lib/worldGenerations/grass_field.js index 702de83..62604ae 100644 --- a/src/lib/worldGenerations/grass_field.js +++ b/src/lib/worldGenerations/grass_field.js @@ -1,19 +1,22 @@ var Chunk = require('prismarine-chunk')(require("../version")); var Vec3 = require('vec3'); -function generateSimpleChunk(chunkX, chunkZ) { - var chunk=new Chunk(); +function generation(options) { + function generateSimpleChunk(chunkX, 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); + 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); + } } } - } - return chunk; + return chunk; + } + return generateSimpleChunk; } -module.exports=generateSimpleChunk; \ No newline at end of file +module.exports=generation; \ No newline at end of file