mirror of
https://github.com/danbulant/flying-squid
synced 2026-07-07 04:00:46 +00:00
make seed a normal generation option, use es6 default parameters, add superflat (thanks @demipixel)
This commit is contained in:
parent
140cf4bb5a
commit
c4974f8e33
5 changed files with 40 additions and 9 deletions
3
app.js
3
app.js
|
|
@ -14,8 +14,7 @@ var options = {
|
||||||
commands: commands,
|
commands: commands,
|
||||||
logging:settings.logging,
|
logging:settings.logging,
|
||||||
kickTimeout:10*60*1000,
|
kickTimeout:10*60*1000,
|
||||||
generation:settings.generation,
|
generation:settings.generation
|
||||||
seed:settings.seed
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mcServer.createMCServer(options);
|
mcServer.createMCServer(options);
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,14 @@ var Vec3 = require('vec3');
|
||||||
|
|
||||||
var generations={
|
var generations={
|
||||||
'grass_field':require("../worldGenerations/grass_field"),
|
'grass_field':require("../worldGenerations/grass_field"),
|
||||||
'diamond_square':require("../worldGenerations/diamond_square")
|
'diamond_square':require("../worldGenerations/diamond_square"),
|
||||||
|
'superflat':require("../worldGenerations/superflat")
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = inject;
|
module.exports = inject;
|
||||||
|
|
||||||
function inject(serv,options) {
|
function inject(serv,options) {
|
||||||
var seed=options.seed || Math.random()*Math.pow(2, 32);
|
options["generation"].options.seed=options["generation"].options.seed || Math.random()*Math.pow(2, 32);
|
||||||
serv.emit("seed",seed);
|
serv.emit("seed",options["generation"].options.seed);
|
||||||
serv.world = new World(generations[options["generation"].name](seed,options["generation"].options));
|
serv.world = new World(generations[options["generation"].name](options["generation"].options));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,8 +93,7 @@ function DiamondSquare(size, roughness, seed) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function generation(seed, options) {
|
function generation({seed,worldHeight=80}={}) {
|
||||||
var worldHeight=options.worldHeight || 80;
|
|
||||||
// Selected empirically
|
// Selected empirically
|
||||||
var size = 10000000;
|
var size = 10000000;
|
||||||
var space = new DiamondSquare(size, size / 1000, seed);
|
var space = new DiamondSquare(size, size / 1000, seed);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
var Chunk = require('prismarine-chunk')(require("../version"));
|
var Chunk = require('prismarine-chunk')(require("../version"));
|
||||||
var Vec3 = require('vec3');
|
var Vec3 = require('vec3');
|
||||||
|
|
||||||
function generation(seed,options) {
|
function generation() {
|
||||||
function generateSimpleChunk(chunkX, chunkZ) {
|
function generateSimpleChunk(chunkX, chunkZ) {
|
||||||
var chunk = new Chunk();
|
var chunk = new Chunk();
|
||||||
|
|
||||||
|
|
|
||||||
32
src/lib/worldGenerations/superflat.js
Normal file
32
src/lib/worldGenerations/superflat.js
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
var Chunk = require('prismarine-chunk')(require("../version"));
|
||||||
|
var Vec3 = require('vec3');
|
||||||
|
|
||||||
|
function generation({opt='default',bottom_id=7,middle_id=1,top_id=2,middle_thickness=3,debug=false}={}) {
|
||||||
|
function generateChunk(chunkX,chunkZ) {
|
||||||
|
var chunk=new Chunk();
|
||||||
|
var height = middle_thickness + 1;
|
||||||
|
var DEBUG_POINTS = [new Vec3(0, height, 0), new Vec3(15, height, 0), new Vec3(0, height, 15), new Vec3(15, height, 15)];
|
||||||
|
for (var x = 0; x < 16; x++) {
|
||||||
|
for (var z = 0; z < 16; z++) {
|
||||||
|
for (var y = 0; y < middle_thickness + 2; y++) {
|
||||||
|
if (y == 0) chunk.setBlockType(new Vec3(x, y, z), bottom_id);
|
||||||
|
else if (y < middle_thickness + 1) chunk.setBlockType(new Vec3(x, y, z), middle_id);
|
||||||
|
else chunk.setBlockType(new Vec3(x, y, z), top_id);
|
||||||
|
}
|
||||||
|
for (y = 0; y < 256; y++) {
|
||||||
|
chunk.setSkyLight(new Vec3(x, y, z), 15);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debug) {
|
||||||
|
for (var d in DEBUG_POINTS) {
|
||||||
|
chunk.setBlockType(DEBUG_POINTS[d], 35);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return chunk;
|
||||||
|
}
|
||||||
|
return generateChunk;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports=generation;
|
||||||
Loading…
Reference in a new issue