UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

48 lines (47 loc) 4.96 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require_world_BaseGenerator = require("../BaseGenerator.cjs.cjs"); const require_world_chunk_Chunk = require("../chunk/Chunk.cjs.cjs"); //#region src/world/generators/Flat.ts var Flat = class extends require_world_BaseGenerator.default { async generateChunk(cx, cz, seed, config) { return new Promise((resolve) => { const chunk = new require_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); }); } }; //#endregion exports.default = Flat; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxhdC5janMuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93b3JsZC9nZW5lcmF0b3JzL0ZsYXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VHZW5lcmF0b3IgZnJvbSAnLi4vQmFzZUdlbmVyYXRvcic7XG5pbXBvcnQgdHlwZSB7IEJsb2NrIH0gZnJvbSAnLi4vLi4vYmxvY2svQmxvY2snO1xuaW1wb3J0IENodW5rIGZyb20gJy4uL2NodW5rL0NodW5rJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmxhdCBleHRlbmRzIEJhc2VHZW5lcmF0b3Ige1xuICAgIHB1YmxpYyBhc3luYyBnZW5lcmF0ZUNodW5rKGN4OiBudW1iZXIsIGN6OiBudW1iZXIsIHNlZWQ/OiBudW1iZXIsIGNvbmZpZz86IGFueSk6IFByb21pc2U8Q2h1bms+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBDaHVuayhjeCwgY3opO1xuXG4gICAgICAgICAgICAvLyBEZWZhdWx0IGxheWVycyBpZiBub25lIGlzIHByb3ZpZGVkXG4gICAgICAgICAgICBjb25zdCBsYXllcnMgPSBjb25maWc/LmxheWVycyA/PyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBibG9jazogJ2JlZHJvY2snLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAxXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrOiAnZGlydCcsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IDJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6ICdncmFzcycsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IDFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICBjb25zdCBibG9ja3M6IEJsb2NrW10gPSBbXTtcbiAgICAgICAgICAgIGxheWVycy5mb3JFYWNoKChsYXllcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGJsb2NrOiBCbG9jaztcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWxheWVyLmJsb2NrLnN0YXJ0c1dpdGgoJ21pbmVjcmFmdDonKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sgPSB0aGlzLmdldEJsb2NrTWFuYWdlcigpLmdldEJsb2NrKGBtaW5lY3JhZnQ6JHtsYXllci5ibG9ja31gKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGJsb2NrID0gdGhpcy5nZXRCbG9ja01hbmFnZXIoKS5nZXRCbG9jayhsYXllci5ibG9jayk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrID0gdGhpcy5nZXRCbG9ja01hbmFnZXIoKS5nZXRCbG9jaygnbWluZWNyYWZ0OmFpcicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjID0gMTsgYyA8PSBsYXllci5zaXplOyBjKyspIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tzLnB1c2goYmxvY2spO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IDE2OyB4KyspIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB6ID0gMDsgeiA8IDE2OyB6KyspIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tzLmZvckVhY2goKGJsb2NrLCBwbGFjZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmsuc2V0QmxvY2soeCwgcGxhY2UsIHosIGJsb2NrKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNvbHZlKGNodW5rKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLElBQXFCLE9BQXJCLGNBQWtDLDRCQUFBLFFBQWM7Q0FDNUMsTUFBYSxjQUFjLElBQVksSUFBWSxNQUFlLFFBQThCO0VBQzVGLE9BQU8sSUFBSSxTQUFTLFlBQVk7R0FDNUIsTUFBTSxRQUFRLElBQUksMEJBQUEsUUFBTSxJQUFJLEVBQUU7R0FHOUIsTUFBTSxTQUFTLFFBQVEsVUFBVTtJQUM3QjtLQUNJLE9BQU87S0FDUCxNQUFNO0lBQ1Y7SUFDQTtLQUNJLE9BQU87S0FDUCxNQUFNO0lBQ1Y7SUFDQTtLQUNJLE9BQU87S0FDUCxNQUFNO0lBQ1Y7R0FDSjtHQUVBLE1BQU0sU0FBa0IsQ0FBQztHQUN6QixPQUFPLFNBQVMsVUFBZTtJQUMzQixJQUFJO0lBQ0osSUFBSTtLQUNBLElBQUksQ0FBQyxNQUFNLE1BQU0sV0FBVyxZQUFZLEdBQ3BDLFFBQVEsS0FBSyxnQkFBZ0IsRUFBRSxTQUFTLGFBQWEsTUFBTSxPQUFPO1VBQy9ELFFBQVEsS0FBSyxnQkFBZ0IsRUFBRSxTQUFTLE1BQU0sS0FBSztJQUM5RCxRQUFRO0tBQ0osUUFBUSxLQUFLLGdCQUFnQixFQUFFLFNBQVMsZUFBZTtJQUMzRDtJQUNBLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxNQUFNLE1BQU0sS0FDN0IsT0FBTyxLQUFLLEtBQUs7R0FFekIsQ0FBQztHQUVELEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQ3BCLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQ3BCLE9BQU8sU0FBUyxPQUFPLFVBQVU7SUFDN0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxHQUFHLEtBQUs7R0FDckMsQ0FBQztHQUlULFFBQVEsS0FBSztFQUNqQixDQUFDO0NBQ0w7QUFDSiJ9