import { Vector3 } from 'three'; import { Block, BlockData, BlockType, SpawnType, PatchBlock, SpawnCategory } from '../utils/common_types.js'; import { ChunkHeightBuffer, ChunkDataContainer, ChunkMask, ChunkMetadata, ChunkSharedContainer, ChunkStub } from '../datacontainers/ChunkContainer.js'; import { GroundPatch } from '../processing/GroundPatch.js'; import { Biome } from '../procgen/Biome.js'; import { BlockDataAdapter, ChunkBlockData, ChunkDataAdapter } from '../datacontainers/BlockDataAdapter.js'; import { WorldModules } from './WorldModules.js'; export declare class ChunkBlocksContainer extends ChunkDataContainer { static dataAdapter: ChunkDataAdapter; dataAdapter: BlockDataAdapter; } export declare const getSolidBlock: (blockType: BlockType, isCheckerBlock?: boolean) => ChunkBlockData; export declare class GroundChunk extends ChunkBlocksContainer { generateHeightBuffer(block: PatchBlock, ymin: number, ymax: number, biome: Biome): ChunkHeightBuffer | undefined; bake(worldModules: WorldModules, groundLayer?: GroundPatch, cavesMask?: ChunkMask): void; } /** * Underground chunk (caverns) */ export declare class CavesMask extends ChunkMask { bake(worldModules: WorldModules): void; } /** * Spawn chunks */ export type SpawnMetadata = { spawnType: SpawnType; spawnCat: SpawnCategory; spawnRadius: number; spawnOrigin?: Vector3; }; export type SpawnChunkMetadata = ChunkMetadata & SpawnMetadata; export type SpawnChunkStub = ChunkStub; export type SpawnData = { spawnOrigin: Vector3; spawnType: SpawnType; }; export declare class SpawnChunk extends ChunkSharedContainer { static dataAdapter: ChunkDataAdapter; dataAdapter: BlockDataAdapter; protected rawData: Uint16Array; spawnOrigin: Vector3 | undefined; spawnType: SpawnType; spawnCat: SpawnCategory; constructor({ metadata, rawdata: externalData }: SpawnChunkStub, spawnOrigin?: Vector3); retrieveBottomBlocks(blocksProvider: (input: Vector3[]) => Block[]): Block[]; /** * adjust chunk elevation or discard schematics if above terrain hole * @param itemChunk * @returns */ fitGround(blocksProvider: (input: Vector3[]) => Block[]): boolean; getUpperBlock(worldPos: Vector3): { level: number; type: BlockType; } | null; toStub(): SpawnChunkStub; toLightStub(): SpawnData; }