@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
54 lines (49 loc) • 5.93 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const world_BaseGenerator = require('../BaseGenerator.cjs.cjs');
const world_chunk_Chunk = require('../chunk/Chunk.cjs.cjs');
class Flat extends world_BaseGenerator.default {
async generateChunk(cx, cz, seed, config) {
return new Promise((resolve) => {
const chunk = new world_chunk_Chunk.default(cx, cz);
const layers = config?.layers ?? [
{
block: "bedrock",
size: 1
},
{
block: "dirt",
size: 2
},
{
block: "grass",
size: 1
}
];
const blocks = [];
layers.forEach((layer) => {
let block;
try {
if (!layer.block.startsWith("minecraft:")) {
block = this.getBlockManager().getBlock(`minecraft:${layer.block}`);
} else block = this.getBlockManager().getBlock(layer.block);
} catch {
block = this.getBlockManager().getBlock("minecraft:air");
}
for (let c = 1; c <= layer.size; c++) {
blocks.push(block);
}
});
for (let x = 0; x < 16; x++) {
for (let z = 0; z < 16; z++) {
blocks.forEach((block, place) => {
chunk.setBlock(x, place, z, block);
});
}
}
resolve(chunk);
});
}
}
exports.default = Flat;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxhdC5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ybGQvZ2VuZXJhdG9ycy9GbGF0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlR2VuZXJhdG9yIGZyb20gJy4uL0Jhc2VHZW5lcmF0b3InO1xuaW1wb3J0IHR5cGUgeyBCbG9jayB9IGZyb20gJy4uLy4uL2Jsb2NrL0Jsb2NrJztcbmltcG9ydCBDaHVuayBmcm9tICcuLi9jaHVuay9DaHVuayc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZsYXQgZXh0ZW5kcyBCYXNlR2VuZXJhdG9yIHtcbiAgICBwdWJsaWMgYXN5bmMgZ2VuZXJhdGVDaHVuayhjeDogbnVtYmVyLCBjejogbnVtYmVyLCBzZWVkPzogbnVtYmVyLCBjb25maWc/OiBhbnkpOiBQcm9taXNlPENodW5rPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgQ2h1bmsoY3gsIGN6KTtcblxuICAgICAgICAgICAgLy8gRGVmYXVsdCBsYXllcnMgaWYgbm9uZSBpcyBwcm92aWRlZFxuICAgICAgICAgICAgY29uc3QgbGF5ZXJzID0gY29uZmlnPy5sYXllcnMgPz8gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6ICdiZWRyb2NrJyxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogMVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBibG9jazogJ2RpcnQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAyXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrOiAnZ3Jhc3MnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAxXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgY29uc3QgYmxvY2tzOiBCbG9ja1tdID0gW107XG4gICAgICAgICAgICBsYXllcnMuZm9yRWFjaCgobGF5ZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBibG9jazogQmxvY2s7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXllci5ibG9jay5zdGFydHNXaXRoKCdtaW5lY3JhZnQ6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrID0gdGhpcy5nZXRCbG9ja01hbmFnZXIoKS5nZXRCbG9jayhgbWluZWNyYWZ0OiR7bGF5ZXIuYmxvY2t9YCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBibG9jayA9IHRoaXMuZ2V0QmxvY2tNYW5hZ2VyKCkuZ2V0QmxvY2sobGF5ZXIuYmxvY2spO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICBibG9jayA9IHRoaXMuZ2V0QmxvY2tNYW5hZ2VyKCkuZ2V0QmxvY2soJ21pbmVjcmFmdDphaXInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgYyA9IDE7IGMgPD0gbGF5ZXIuc2l6ZTsgYysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKGJsb2NrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCAxNjsgeCsrKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgeiA9IDA7IHogPCAxNjsgeisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2Nrcy5mb3JFYWNoKChibG9jaywgcGxhY2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rLnNldEJsb2NrKHgsIHBsYWNlLCB6LCBibG9jayk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzb2x2ZShjaHVuayk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJCYXNlR2VuZXJhdG9yIiwiQ2h1bmsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxNQUFxQixhQUFhQSwyQkFBYyxDQUFBO0FBQUEsRUFDNUMsTUFBYSxhQUFBLENBQWMsRUFBWSxFQUFBLEVBQUEsRUFBWSxNQUFlLE1BQThCLEVBQUE7QUFDNUYsSUFBTyxPQUFBLElBQUksT0FBUSxDQUFBLENBQUMsT0FBWSxLQUFBO0FBQzVCLE1BQUEsTUFBTSxLQUFRLEdBQUEsSUFBSUMseUJBQU0sQ0FBQSxFQUFBLEVBQUksRUFBRSxDQUFBO0FBRzlCLE1BQU0sTUFBQSxNQUFBLEdBQVMsUUFBUSxNQUFVLElBQUE7QUFBQSxRQUM3QjtBQUFBLFVBQ0ksS0FBTyxFQUFBLFNBQUE7QUFBQSxVQUNQLElBQU0sRUFBQTtBQUFBLFNBQ1Y7QUFBQSxRQUNBO0FBQUEsVUFDSSxLQUFPLEVBQUEsTUFBQTtBQUFBLFVBQ1AsSUFBTSxFQUFBO0FBQUEsU0FDVjtBQUFBLFFBQ0E7QUFBQSxVQUNJLEtBQU8sRUFBQSxPQUFBO0FBQUEsVUFDUCxJQUFNLEVBQUE7QUFBQTtBQUNWLE9BQ0o7QUFFQSxNQUFBLE1BQU0sU0FBa0IsRUFBQztBQUN6QixNQUFPLE1BQUEsQ0FBQSxPQUFBLENBQVEsQ0FBQyxLQUFlLEtBQUE7QUFDM0IsUUFBSSxJQUFBLEtBQUE7QUFDSixRQUFJLElBQUE7QUFDQSxVQUFBLElBQUksQ0FBQyxLQUFBLENBQU0sS0FBTSxDQUFBLFVBQUEsQ0FBVyxZQUFZLENBQUcsRUFBQTtBQUN2QyxZQUFBLEtBQUEsR0FBUSxLQUFLLGVBQWdCLEVBQUEsQ0FBRSxTQUFTLENBQWEsVUFBQSxFQUFBLEtBQUEsQ0FBTSxLQUFLLENBQUUsQ0FBQSxDQUFBO0FBQUEsaUJBQ3ZELEtBQUEsR0FBQSxJQUFBLENBQUssaUJBQWtCLENBQUEsUUFBQSxDQUFTLE1BQU0sS0FBSyxDQUFBO0FBQUEsU0FDdEQsQ0FBQSxNQUFBO0FBQ0osVUFBQSxLQUFBLEdBQVEsSUFBSyxDQUFBLGVBQUEsRUFBa0IsQ0FBQSxRQUFBLENBQVMsZUFBZSxDQUFBO0FBQUE7QUFFM0QsUUFBQSxLQUFBLElBQVMsQ0FBSSxHQUFBLENBQUEsRUFBRyxDQUFLLElBQUEsS0FBQSxDQUFNLE1BQU0sQ0FBSyxFQUFBLEVBQUE7QUFDbEMsVUFBQSxNQUFBLENBQU8sS0FBSyxLQUFLLENBQUE7QUFBQTtBQUNyQixPQUNILENBQUE7QUFFRCxNQUFBLEtBQUEsSUFBUyxDQUFJLEdBQUEsQ0FBQSxFQUFHLENBQUksR0FBQSxFQUFBLEVBQUksQ0FBSyxFQUFBLEVBQUE7QUFDekIsUUFBQSxLQUFBLElBQVMsQ0FBSSxHQUFBLENBQUEsRUFBRyxDQUFJLEdBQUEsRUFBQSxFQUFJLENBQUssRUFBQSxFQUFBO0FBQ3pCLFVBQU8sTUFBQSxDQUFBLE9BQUEsQ0FBUSxDQUFDLEtBQUEsRUFBTyxLQUFVLEtBQUE7QUFDN0IsWUFBQSxLQUFBLENBQU0sUUFBUyxDQUFBLENBQUEsRUFBRyxLQUFPLEVBQUEsQ0FBQSxFQUFHLEtBQUssQ0FBQTtBQUFBLFdBQ3BDLENBQUE7QUFBQTtBQUNMO0FBR0osTUFBQSxPQUFBLENBQVEsS0FBSyxDQUFBO0FBQUEsS0FDaEIsQ0FBQTtBQUFBO0FBRVQ7Ozs7In0=