@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
48 lines (47 loc) • 4.96 kB
JavaScript
;
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