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.