Public Access
64 lines
4.2 KiB
Markdown
64 lines
4.2 KiB
Markdown
# Optional TerraBlender biome compatibility (Milestone 5, issue #37)
|
|
|
|
Rivencraft targets TerraBlender NeoForge **1.21.1-4.1.0.8**. The official
|
|
[1.21.1 release](https://modrinth.com/mod/terrablender/version/4.1.0.8) and
|
|
[region API](https://github.com/Glitchfiend/TerraBlender/blob/1.21.1/Common/src/main/java/terrablender/api/Regions.java)
|
|
are available for this Minecraft version. TerraBlender is `compileOnly` and
|
|
is **not** required by the published Rivencraft jar. For a local development
|
|
run with TerraBlender, use `-PwithTerraBlender=true`.
|
|
|
|
TerraBlender's API registers Overworld and Nether biome *regions*; it does not
|
|
register arbitrary Rivencraft Age dimensions. Rivencraft therefore keeps its
|
|
own deterministic Age biome sources and uses a guarded adapter to read the
|
|
registered region biome IDs. Only biomes still present in Minecraft's biome
|
|
registry are accepted. TerraBlender Overworld region biomes extend the pool
|
|
for standard, flat, and sky-island Ages; Nether region biomes extend Cave Age
|
|
pools and are valid authored Cave biome pages. Vanilla Nether-tagged biomes
|
|
are also valid Cave biomes. This is generic: no Biomes O' Plenty IDs are
|
|
hard-coded.
|
|
|
|
Every registered biome receives a generated page in Rivencraft's Biome or Cave
|
|
Biome creative tab, and in JEI when JEI is installed. Cave-tagged, Nether-tagged,
|
|
and TerraBlender Nether-region biomes go in the Cave Biome tab. Existing vanilla page IDs such as
|
|
`rivencraft:biome/desert` are unchanged; modded biome IDs include their
|
|
namespace, for example `rivencraft:biome/example/orchard` for a biome named
|
|
`example:orchard`.
|
|
Authoring still validates the exact biome registry key. New Age plans freeze
|
|
the selected biome IDs, distribution, and seed, so a reload with the same mods
|
|
retains the result. If a modded biome later disappears, the Age loader warns
|
|
and uses an eligible fallback for that load without rewriting its frozen plan.
|
|
Restore the mod to recover the authored biome. Do not remove biome mods from
|
|
an existing play world without a backup.
|
|
|
|
## Compatibility matrix
|
|
|
|
| Setup | Expected result | Validation |
|
|
| --- | --- | --- |
|
|
| Rivencraft without TerraBlender | Vanilla biome pages and Age generation remain functional; no TerraBlender classes load on the core path. | Default GameTest server and build. |
|
|
| Rivencraft with TerraBlender 4.1.0.8, no biome addon | Same baseline pool; default TerraBlender regions add no modded biome IDs. | GameTest server with `-PwithTerraBlender=true`. |
|
|
| Rivencraft + TerraBlender + Biomes O' Plenty 1.21.1 | BOP registry biomes appear as distinct Biome pages, with Nether-region pages in the Cave Biome tab. Its Overworld regions can enter composed standard/sky-island Age pools; its Nether regions can enter Cave Age pools. | In-game check below; this combination is not bundled in automated tests. |
|
|
| TerraBlender present but its region API cannot be read | Log one warning and use Rivencraft's normal biome pool. | Guarded adapter fallback; intentionally not forced by GameTest. |
|
|
|
|
## In-game check requested for Biomes O' Plenty
|
|
|
|
Use a **new test world** with compatible NeoForge 1.21.1 builds of
|
|
TerraBlender and Biomes O' Plenty installed on both sides.
|
|
|
|
1. In the Rivencraft Biome and Cave Biome Pages creative tabs (and JEI, if installed), find
|
|
at least one BOP Overworld biome and one BOP Nether biome, respectively. The page tooltip
|
|
should identify the biome and not show an unresolved symbol.
|
|
2. Bind a Descriptive Book with a Link Panel, Standard Terrain, a two-biome
|
|
distribution page, and two different BOP Overworld biome pages. Travel to
|
|
the Age and confirm both named biomes can occur. Reopen the same world and
|
|
confirm the Age still uses the same authored biome pool.
|
|
3. Bind a second book using Cave Terrain and a BOP Nether biome page. The
|
|
Binder must accept the page, and the resulting Cave Age must use the
|
|
selected Nether biome rather than rejecting it as non-cave.
|
|
4. Separately, run Rivencraft without TerraBlender and confirm a Link-Panel-
|
|
only random Age can still be created and entered. Do not reuse the BOP test
|
|
world for this absence check.
|
|
|
|
The previous broad registry-enumeration GameTest stalled in the test server,
|
|
so the BOP-specific and client-side checks are deliberately handed off for
|
|
manual testing instead of retaining that stalled test.
|