UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

54 lines (49 loc) 5.93 kB
'use strict'; 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=