Projekt používá jeden centrální konfigurák src/core/gameConfig.js.
gameConfig.worldobsahuje nastavení voxel světa (seed, výšky, streaming, velikost bloku, biomy).gameConfig.playerobsahuje fyziku a pohyb hráče.worldConfigaplayerConfigjsou exportované části z tohoto centrálního objektu.
baseSurfaceHeight je výchozí (střední) výška terénu před aplikací noise. Společně s terrainAmplitude určuje, kolem jaké výšky se terén vlní.
Složení terénu se nastavuje v world.terrainBlocks:
surfaceBlockId– blok na povrchu.subSurfaceLayers– vrstvy pod povrchem (blockId+depth).deepBlockId– výchozí hluboký blok pod definovanými vrstvami.
Díky tomu přidávání dalších bloků neznamená úpravy ve voxelWorld.js, stačí upravit konfiguraci.
blockSizeje pevně nastavený na1a při startu se validuje (validateWorldSetup).- Typy bloků jsou centralizované v
src/content/blockCatalog.jsa rendering světa z katalogu čte ID i textury. - Seed je použitý deterministicky napříč vrstvami: surface heightmapa (2D), jeskyně a rudy (3D), biome klima mapy.
- Parametry highlightu (
blockHighlightMaxDistance,highlightPaddingRatio,highlightPickSurfaceEpsilon) jsou v centrálním configu. - Parametry noise vrstev (
terrainNoiseOctaves) jsou v configu místo pevného zápisu v generátoru.
Tím pádem při ladění nemusíš sahat do runtime/world skriptů, stačí měnit gameConfig.
Generování terénu používá biome resolver (src/world/generation/biomeResolver.js) a katalog biome dat (src/content/biomeCatalog.js).
- Biome se určují deterministicky ze seedu přes teplotní a vlhkostní noise mapu.
- Aktivní biomy a frekvence noise se nastavují v
gameConfig.world.biomes. - Každý biome může upravit:
- profil terénu (
baseSurfaceHeightOffset,amplitudeMultiplier), - surface blok (
surface.blockId), - chování vegetace (
vegetation.treeChanceMultiplier).
- profil terénu (
Biome vrstva je aktivně použitá pro terén, povrch i vegetaci.
Biome profil teď řídí i dostupnost rud přes biome.ores.allowedOreBlockIds.
oreVeinGeneratorpři rozhodování respektuje aktivní biome pro konkrétní voxel.- Pokud biome seznam rud neurčí, použije se výchozí globální ore sada z
gameConfig.world.underground.ores. - Konkrétní seznamy pro
plains,desertacoalFieldsjsou vsrc/content/biomeCatalog.js.
Nové nastavení hloubky je centralizované v gameConfig.world:
absoluteFloorYdefinuje absolutní nulu mapy (aktuálně-64).minWorldHeightje zarovnané na stejnou hodnotu jakoabsoluteFloorY.terrainBlocks.bedrockThicknessurčuje tloušťku bedrock vrstvy od absolutní nuly nahoru.- Cave carving podporuje i absolutní limity
underground.caves.minYaunderground.caves.maxY, takže jeskyně lze řídit nejen podle hloubky pod povrchem, ale i podle skutečné Y osy.
Ore vein systém je kompatibilní s novou hloubkou mapy a umí kombinovat dvě podmínky zároveň:
- relativní hloubku pod povrchem (
minDepthBelowSurface,maxDepthBelowSurface), - absolutní výškové limity (
minY,maxY) pro každý typ rudy.
Díky tomu mohou vzácné materiály spawnovat i ve velmi nízkých hladinách (blízko absoluteFloorY), ale stále zůstávají řízené profilem rud.