UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

43 lines (42 loc) 4.71 kB
import BaseGenerator from "../BaseGenerator.es.js"; import Chunk from "../chunk/Chunk.es.js"; //#region src/world/generators/Flat.ts var Flat = class extends BaseGenerator { async generateChunk(cx, cz, seed, config) { return new Promise((resolve) => { const chunk = new Chunk(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 export { Flat as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxhdC5lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ybGQvZ2VuZXJhdG9ycy9GbGF0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlR2VuZXJhdG9yIGZyb20gJy4uL0Jhc2VHZW5lcmF0b3InO1xuaW1wb3J0IHR5cGUgeyBCbG9jayB9IGZyb20gJy4uLy4uL2Jsb2NrL0Jsb2NrJztcbmltcG9ydCBDaHVuayBmcm9tICcuLi9jaHVuay9DaHVuayc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZsYXQgZXh0ZW5kcyBCYXNlR2VuZXJhdG9yIHtcbiAgICBwdWJsaWMgYXN5bmMgZ2VuZXJhdGVDaHVuayhjeDogbnVtYmVyLCBjejogbnVtYmVyLCBzZWVkPzogbnVtYmVyLCBjb25maWc/OiBhbnkpOiBQcm9taXNlPENodW5rPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgQ2h1bmsoY3gsIGN6KTtcblxuICAgICAgICAgICAgLy8gRGVmYXVsdCBsYXllcnMgaWYgbm9uZSBpcyBwcm92aWRlZFxuICAgICAgICAgICAgY29uc3QgbGF5ZXJzID0gY29uZmlnPy5sYXllcnMgPz8gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6ICdiZWRyb2NrJyxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogMVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBibG9jazogJ2RpcnQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAyXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrOiAnZ3Jhc3MnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAxXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgY29uc3QgYmxvY2tzOiBCbG9ja1tdID0gW107XG4gICAgICAgICAgICBsYXllcnMuZm9yRWFjaCgobGF5ZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBibG9jazogQmxvY2s7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXllci5ibG9jay5zdGFydHNXaXRoKCdtaW5lY3JhZnQ6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrID0gdGhpcy5nZXRCbG9ja01hbmFnZXIoKS5nZXRCbG9jayhgbWluZWNyYWZ0OiR7bGF5ZXIuYmxvY2t9YCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBibG9jayA9IHRoaXMuZ2V0QmxvY2tNYW5hZ2VyKCkuZ2V0QmxvY2sobGF5ZXIuYmxvY2spO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICBibG9jayA9IHRoaXMuZ2V0QmxvY2tNYW5hZ2VyKCkuZ2V0QmxvY2soJ21pbmVjcmFmdDphaXInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgYyA9IDE7IGMgPD0gbGF5ZXIuc2l6ZTsgYysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKGJsb2NrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCAxNjsgeCsrKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgeiA9IDA7IHogPCAxNjsgeisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2Nrcy5mb3JFYWNoKChibG9jaywgcGxhY2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rLnNldEJsb2NrKHgsIHBsYWNlLCB6LCBibG9jayk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzb2x2ZShjaHVuayk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsSUFBcUIsT0FBckIsY0FBa0MsY0FBYztDQUM1QyxNQUFhLGNBQWMsSUFBWSxJQUFZLE1BQWUsUUFBOEI7RUFDNUYsT0FBTyxJQUFJLFNBQVMsWUFBWTtHQUM1QixNQUFNLFFBQVEsSUFBSSxNQUFNLElBQUksRUFBRTtHQUc5QixNQUFNLFNBQVMsUUFBUSxVQUFVO0lBQzdCO0tBQ0ksT0FBTztLQUNQLE1BQU07SUFDVjtJQUNBO0tBQ0ksT0FBTztLQUNQLE1BQU07SUFDVjtJQUNBO0tBQ0ksT0FBTztLQUNQLE1BQU07SUFDVjtHQUNKO0dBRUEsTUFBTSxTQUFrQixDQUFDO0dBQ3pCLE9BQU8sU0FBUyxVQUFlO0lBQzNCLElBQUk7SUFDSixJQUFJO0tBQ0EsSUFBSSxDQUFDLE1BQU0sTUFBTSxXQUFXLFlBQVksR0FDcEMsUUFBUSxLQUFLLGdCQUFnQixFQUFFLFNBQVMsYUFBYSxNQUFNLE9BQU87VUFDL0QsUUFBUSxLQUFLLGdCQUFnQixFQUFFLFNBQVMsTUFBTSxLQUFLO0lBQzlELFFBQVE7S0FDSixRQUFRLEtBQUssZ0JBQWdCLEVBQUUsU0FBUyxlQUFlO0lBQzNEO0lBQ0EsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLE1BQU0sTUFBTSxLQUM3QixPQUFPLEtBQUssS0FBSztHQUV6QixDQUFDO0dBRUQsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksS0FDcEIsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksS0FDcEIsT0FBTyxTQUFTLE9BQU8sVUFBVTtJQUM3QixNQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsS0FBSztHQUNyQyxDQUFDO0dBSVQsUUFBUSxLQUFLO0VBQ2pCLENBQUM7Q0FDTDtBQUNKIn0=