import { Vector2, Vector3 } from 'three'; import { Block, BlockData } from '../utils/common_types.js'; import { WorldModules } from '../factory/WorldModules.js'; import { BaseProcessingParams, ProcessingTask, ProcessingTaskHandler } from './TaskProcessing.js'; /** * Calling side */ export declare enum BlocksTaskRecipe { Ground = 0, Peak = 1, Floor = 2,// returns floor if requested block is empty in down direction, otherwise look for closest floor in up direction Ceiling = 3 } export declare enum BlocksDataFormat { VectorArrayXYZ = "vector_array_xyz", FloatArrayXZ = "float_array_xz" } export type FloatArrayOut = { elevation: Float32Array; type: Float32Array; }; export type BlocksTaskInput = Vector3[] | Vector2[] | Float32Array; export type BlocksTaskOutput = Block[] | FloatArrayOut; export type BlocksTaskParams = BaseProcessingParams & { recipe: BlocksTaskRecipe; includeDensity?: boolean; dataFormat?: BlocksDataFormat; includeRawData?: boolean; }; export declare class BlocksTask extends ProcessingTask { static handlerId: string; constructor(); /** * Build templates for most common tasks, adjust manually if needed */ /** * Instance version (allow use from child classes) * @param recipe * @returns */ getBuildTemplate(recipe: BlocksTaskRecipe): (input: ProcessingInput) => this; get groundPositions(): (input: ProcessingInput) => this; get peakPositions(): (input: ProcessingInput) => this; get floorPositions(): (input: ProcessingInput) => this; get ceilPositions(): (input: ProcessingInput) => this; /** * Static versions (allow better types inferance) * @param recipe * @returns */ static factory: (recipe: BlocksTaskRecipe) => (input: ProcessingInput_1) => BlocksTask; static get groundPositions(): (input: BlocksTaskInput) => BlocksTask; static get peakPositions(): (input: BlocksTaskInput) => BlocksTask; static get floorPositions(): (input: BlocksTaskInput) => BlocksTask; static get ceilPositions(): (input: BlocksTaskInput) => BlocksTask; } export declare const BlocksProcessing: typeof BlocksTask; export type BlocksProcessingHandler = ProcessingTaskHandler; export declare const createBlocksTaskHandler: (worldModules: WorldModules) => BlocksProcessingHandler; /** * Processing */