import { Vector2, Vector3 } from 'three'; import { LinkedList } from '../datacontainers/LinkedList.js'; import { BiomesConf, BiomesRawConf, BiomeLands, LandFields, BiomeLandsConf, SpawnElement, BiomeType } from '../utils/common_types.js'; import { BiomesEnvSettings, WorldSeeds } from '../config/WorldEnv.js'; import { ItemsInventory } from '../factory/ItemsInventory.js'; import { NoiseSampler } from './NoiseSampler.js'; export type BiomeInfluence = Record; /** * assign block types: water, sand, grass, mud, rock, snow, .. */ export declare class Biome { heatmap: NoiseSampler; rainmap: NoiseSampler; mappings: BiomesConf; posRandomizer: NoiseSampler; /** * val < lowToMid=> LOW = 1 * lowToMid < val < mid => LOW decrease, MID increase * mid < val < midToHigh => MID = 1 * midToHigh < val < high => MID decrease, HIGH increase * val > hight => HIGH = 1 */ steps: { lowToMid: number; mid: number; midToHigh: number; high: number; }; biomeEnv: BiomesEnvSettings; constructor(biomesParsedConf: BiomesConf, biomeEnv: BiomesEnvSettings, worldSeeds: WorldSeeds); get ready(): boolean; /** * * @param input either blocks position, or pre-requested biome contributions * @returns */ getBiomeType(input: Vector3 | BiomeInfluence): BiomeType; calculateContributions(value: number): { low: number; mid: number; high: number; }; getBiomeInfluence(pos: Vector3): BiomeInfluence; landscapeTransition: (groundPos: Vector2, baseHeight: number, biomeLands: BiomeLands) => import("../utils/common_types.js").BlockType | undefined; getBlockLevel: (rawVal: number, biomeType: BiomeType, includeSea?: boolean) => number; getBlockLevelInterpolated: (rawVal: number, biomeContribs: BiomeInfluence) => number; getBiomeConf: (rawVal: number, biomeType: BiomeType) => LinkedList; static parseSpawnableElements(floraConf: Record, itemsInventory: ItemsInventory): Promise; static parseBiomeLands(landsConf: BiomeLandsConf, itemsInventory: ItemsInventory): Promise>; static parseBiomesConf(biomesRawConf: BiomesRawConf, itemsInventory: ItemsInventory): Promise; }