yog-dimensions 0.3.0

Yog custom dimensions — dimension-type definitions and runtime chunk generation.
Documentation

yog-dimensions — custom Minecraft dimension definitions for Yog mods.

Declares a dimension's type (sky, lighting, physics, coordinate scale — see [YogDimensionTypeDef]) via [YogDimensionDef], registered once at mod-init time through Registry::register_dimension (in yog-api), the same lifecycle window as blocks/items/recipes.

id isn't limited to new custom dimensions — passing a vanilla id ("minecraft:overworld", "minecraft:the_nether", "minecraft:the_end") patches that dimension's type/generator instead of creating a new one. This is how a mod replaces or tweaks the overworld's terrain, not just adds side dimensions.

Chunk generation is intentionally not a fixed preset/config here — there's no single "noise" or "flat" style that covers every mod's needs, and real generators often layer several algorithms together. Instead, mods write their own generator as a plain closure and register it under a named, reusable generator type via Registry::register_chunk_generator (e.g. "mymod:custom_terrain") — called once per chunk column with a [ChunkWriter] handle the closure uses to place blocks however it likes (composing whatever noise functions or logic it wants — that's the mod's own code, not this crate's concern).

Because generator types are named and independent of any one dimension, a [YogDimensionDef] just references one by id via [YogDimensionDef::generator_type] — the same generator type can back several dimensions, and (like Biomes O'Plenty's world-type presets) the platform host can list every registered generator type as a selectable option on the world-creation screen, letting a player pick which registered generator the overworld (or a custom dimension) uses for a new world.