mirror of
https://github.com/danbulant/flying-squid
synced 2026-06-19 22:41:52 +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,
|
||||
logging:settings.logging,
|
||||
kickTimeout:10*60*1000,
|
||||
generation:settings.generation,
|
||||
seed:settings.seed
|
||||
generation:settings.generation
|
||||
};
|
||||
|
||||
mcServer.createMCServer(options);
|
||||
|
|
|
|||
|
|
@ -4,13 +4,14 @@ var Vec3 = require('vec3');
|
|||
|
||||
var generations={
|
||||
'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;
|
||||
|
||||
function inject(serv,options) {
|
||||
var seed=options.seed || Math.random()*Math.pow(2, 32);
|
||||
serv.emit("seed",seed);
|
||||
serv.world = new World(generations[options["generation"].name](seed,options["generation"].options));
|
||||
options["generation"].options.seed=options["generation"].options.seed || Math.random()*Math.pow(2, 32);
|
||||
serv.emit("seed",options["generation"].options.seed);
|
||||
serv.world = new World(generations[options["generation"].name](options["generation"].options));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,8 +93,7 @@ function DiamondSquare(size, roughness, seed) {
|
|||
}
|
||||
}
|
||||
|
||||
function generation(seed, options) {
|
||||
var worldHeight=options.worldHeight || 80;
|
||||
function generation({seed,worldHeight=80}={}) {
|
||||
// Selected empirically
|
||||
var size = 10000000;
|
||||
var space = new DiamondSquare(size, size / 1000, seed);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
var Chunk = require('prismarine-chunk')(require("../version"));
|
||||
var Vec3 = require('vec3');
|
||||
|
||||
function generation(seed,options) {
|
||||
function generation() {
|
||||
function generateSimpleChunk(chunkX, chunkZ) {
|
||||
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