UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

50 lines (47 loc) 5.7 kB
import BaseGenerator from '../BaseGenerator.es.js'; import Chunk from '../chunk/Chunk.es.js'; class Flat 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); }); } } export { Flat as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxhdC5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dvcmxkL2dlbmVyYXRvcnMvRmxhdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUdlbmVyYXRvciBmcm9tICcuLi9CYXNlR2VuZXJhdG9yJztcbmltcG9ydCB0eXBlIHsgQmxvY2sgfSBmcm9tICcuLi8uLi9ibG9jay9CbG9jayc7XG5pbXBvcnQgQ2h1bmsgZnJvbSAnLi4vY2h1bmsvQ2h1bmsnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGbGF0IGV4dGVuZHMgQmFzZUdlbmVyYXRvciB7XG4gICAgcHVibGljIGFzeW5jIGdlbmVyYXRlQ2h1bmsoY3g6IG51bWJlciwgY3o6IG51bWJlciwgc2VlZD86IG51bWJlciwgY29uZmlnPzogYW55KTogUHJvbWlzZTxDaHVuaz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNodW5rID0gbmV3IENodW5rKGN4LCBjeik7XG5cbiAgICAgICAgICAgIC8vIERlZmF1bHQgbGF5ZXJzIGlmIG5vbmUgaXMgcHJvdmlkZWRcbiAgICAgICAgICAgIGNvbnN0IGxheWVycyA9IGNvbmZpZz8ubGF5ZXJzID8/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrOiAnYmVkcm9jaycsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IDFcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2s6ICdkaXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogMlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBibG9jazogJ2dyYXNzJyxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogMVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIGNvbnN0IGJsb2NrczogQmxvY2tbXSA9IFtdO1xuICAgICAgICAgICAgbGF5ZXJzLmZvckVhY2goKGxheWVyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgYmxvY2s6IEJsb2NrO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbGF5ZXIuYmxvY2suc3RhcnRzV2l0aCgnbWluZWNyYWZ0OicpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jayA9IHRoaXMuZ2V0QmxvY2tNYW5hZ2VyKCkuZ2V0QmxvY2soYG1pbmVjcmFmdDoke2xheWVyLmJsb2NrfWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgYmxvY2sgPSB0aGlzLmdldEJsb2NrTWFuYWdlcigpLmdldEJsb2NrKGxheWVyLmJsb2NrKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgYmxvY2sgPSB0aGlzLmdldEJsb2NrTWFuYWdlcigpLmdldEJsb2NrKCdtaW5lY3JhZnQ6YWlyJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAobGV0IGMgPSAxOyBjIDw9IGxheWVyLnNpemU7IGMrKykge1xuICAgICAgICAgICAgICAgICAgICBibG9ja3MucHVzaChibG9jayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgMTY7IHgrKykge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IHogPSAwOyB6IDwgMTY7IHorKykge1xuICAgICAgICAgICAgICAgICAgICBibG9ja3MuZm9yRWFjaCgoYmxvY2ssIHBsYWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaHVuay5zZXRCbG9jayh4LCBwbGFjZSwgeiwgYmxvY2spO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc29sdmUoY2h1bmspO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBcUIsYUFBYSxhQUFjLENBQUE7QUFBQSxFQUM1QyxNQUFhLGFBQUEsQ0FBYyxFQUFZLEVBQUEsRUFBQSxFQUFZLE1BQWUsTUFBOEIsRUFBQTtBQUM1RixJQUFPLE9BQUEsSUFBSSxPQUFRLENBQUEsQ0FBQyxPQUFZLEtBQUE7QUFDNUIsTUFBQSxNQUFNLEtBQVEsR0FBQSxJQUFJLEtBQU0sQ0FBQSxFQUFBLEVBQUksRUFBRSxDQUFBO0FBRzlCLE1BQU0sTUFBQSxNQUFBLEdBQVMsUUFBUSxNQUFVLElBQUE7QUFBQSxRQUM3QjtBQUFBLFVBQ0ksS0FBTyxFQUFBLFNBQUE7QUFBQSxVQUNQLElBQU0sRUFBQTtBQUFBLFNBQ1Y7QUFBQSxRQUNBO0FBQUEsVUFDSSxLQUFPLEVBQUEsTUFBQTtBQUFBLFVBQ1AsSUFBTSxFQUFBO0FBQUEsU0FDVjtBQUFBLFFBQ0E7QUFBQSxVQUNJLEtBQU8sRUFBQSxPQUFBO0FBQUEsVUFDUCxJQUFNLEVBQUE7QUFBQTtBQUNWLE9BQ0o7QUFFQSxNQUFBLE1BQU0sU0FBa0IsRUFBQztBQUN6QixNQUFPLE1BQUEsQ0FBQSxPQUFBLENBQVEsQ0FBQyxLQUFlLEtBQUE7QUFDM0IsUUFBSSxJQUFBLEtBQUE7QUFDSixRQUFJLElBQUE7QUFDQSxVQUFBLElBQUksQ0FBQyxLQUFBLENBQU0sS0FBTSxDQUFBLFVBQUEsQ0FBVyxZQUFZLENBQUcsRUFBQTtBQUN2QyxZQUFBLEtBQUEsR0FBUSxLQUFLLGVBQWdCLEVBQUEsQ0FBRSxTQUFTLENBQWEsVUFBQSxFQUFBLEtBQUEsQ0FBTSxLQUFLLENBQUUsQ0FBQSxDQUFBO0FBQUEsaUJBQ3ZELEtBQUEsR0FBQSxJQUFBLENBQUssaUJBQWtCLENBQUEsUUFBQSxDQUFTLE1BQU0sS0FBSyxDQUFBO0FBQUEsU0FDdEQsQ0FBQSxNQUFBO0FBQ0osVUFBQSxLQUFBLEdBQVEsSUFBSyxDQUFBLGVBQUEsRUFBa0IsQ0FBQSxRQUFBLENBQVMsZUFBZSxDQUFBO0FBQUE7QUFFM0QsUUFBQSxLQUFBLElBQVMsQ0FBSSxHQUFBLENBQUEsRUFBRyxDQUFLLElBQUEsS0FBQSxDQUFNLE1BQU0sQ0FBSyxFQUFBLEVBQUE7QUFDbEMsVUFBQSxNQUFBLENBQU8sS0FBSyxLQUFLLENBQUE7QUFBQTtBQUNyQixPQUNILENBQUE7QUFFRCxNQUFBLEtBQUEsSUFBUyxDQUFJLEdBQUEsQ0FBQSxFQUFHLENBQUksR0FBQSxFQUFBLEVBQUksQ0FBSyxFQUFBLEVBQUE7QUFDekIsUUFBQSxLQUFBLElBQVMsQ0FBSSxHQUFBLENBQUEsRUFBRyxDQUFJLEdBQUEsRUFBQSxFQUFJLENBQUssRUFBQSxFQUFBO0FBQ3pCLFVBQU8sTUFBQSxDQUFBLE9BQUEsQ0FBUSxDQUFDLEtBQUEsRUFBTyxLQUFVLEtBQUE7QUFDN0IsWUFBQSxLQUFBLENBQU0sUUFBUyxDQUFBLENBQUEsRUFBRyxLQUFPLEVBQUEsQ0FBQSxFQUFHLEtBQUssQ0FBQTtBQUFBLFdBQ3BDLENBQUE7QUFBQTtBQUNMO0FBR0osTUFBQSxPQUFBLENBQVEsS0FBSyxDQUFBO0FBQUEsS0FDaEIsQ0FBQTtBQUFBO0FBRVQ7Ozs7In0=