mirror of
https://github.com/danbulant/flying-squid
synced 2026-06-18 05:51:12 +00:00
see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const and https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
33 lines
No EOL
1 KiB
JavaScript
33 lines
No EOL
1 KiB
JavaScript
const Chunk = require('prismarine-chunk')(require("../version"));
|
|
const Vec3 = require('vec3').Vec3;
|
|
const rand = require('random-seed');
|
|
|
|
function generation({seed,level=50}={}) {
|
|
function generateChunk(chunkX, chunkZ) {
|
|
const seedRand = rand.create(seed+':'+chunkX+':'+chunkZ);
|
|
const chunk=new Chunk();
|
|
for (let x = 0; x < 16; x++) {
|
|
for (let z = 0; z < 16; z++) {
|
|
const bedrockheighttop = 1 + seedRand(4);
|
|
const bedrockheightbottom = 1 + seedRand(4);
|
|
for (let y = 0; y < 128; y++) { // Nether only goes up to 128
|
|
let block;
|
|
let data;
|
|
|
|
if (y < bedrockheightbottom) block = 7;
|
|
else if (y < level) block = 87;
|
|
else if (y > 127 - bedrockheighttop) block = 7;
|
|
|
|
const pos = new Vec3(x, y, z);
|
|
if (block) chunk.setBlockType(pos, block);
|
|
if (data) chunk.setBlockData(pos, data);
|
|
// Don't need to set light data in nether
|
|
}
|
|
}
|
|
}
|
|
return chunk;
|
|
}
|
|
return generateChunk;
|
|
}
|
|
|
|
module.exports = generation; |