Files
rivencraft/docs/MILESTONE_7_ACCEPTANCE.md
T
2026-10-22 22:32:12 -04:00

5.8 KiB
Raw Blame History

Milestone 7 acceptance — 1.0.0.2

Milestone 7 is complete for the supported NeoForge 1.21.1 feature set. This is not a claim of total Mystcraft Legacy parity or exhaustive optional-mod certification. The current implementation is the up-to-date behavior summary; the regression matrix separates automated evidence from manual scenarios.

Scope and issue gate

The Gitea audit for issue #84 found no other open issues. Required existing #14 (cave terrain), #43 (glyph numbers), #44 (sky), and #60 (old-save policy) were closed. M7 implementation and review issues #75–#83, #85–#90, and later additions #91–#94 were closed before this acceptance. No required issue was silently deferred.

Legacy concept Rivencraft implementation or deliberate difference
Cave terrain and writing Cave terrain uses its cave/Nether biome set and a modern Y=64-start spawn search. Existing non-cave terrain still supports caves as features. See Age profiles and grammar.
Libraries The recognizable Legacy small-library layout and sparse candidate spacing are ported as a structure template with a chest and up to five page-bearing Book Stands. It generates only in Ages and only on suitable surfaces; player-selectable Legacy or Age-only loot is supported. See Legacy M7 audit.
Crystal portal and Receptacle Connected Crystal Blocks support vertical and horizontal portals. The held book stays in the Receptacle; removing it removes the surface. Rivencraft validates loaded bounds and block protection, saves owner pointers, and uses book-travel rules. Optional Immersive Portals supplies a live destination view, with an animated fallback while unavailable.
Handheld Linking/Descriptive Books The used book remains behind as a rendered book entity at the origin. The exact Legacy entity pickup rule is not copied: modern contact pickup is used. Return Links default to disabled but remain configurable.
Recipes and discovery JSON crafting recipes and recipe-book unlocks cover the supported writing/crystal progression. Optional JEI covers the Binder, Writing Desk, and Ink Mixer; a Lectern conversion has no JEI guide. Blank Pages are not craftable. Optional Create/Ponder teaches portal construction. See JEI review.
Models, sounds, and advancements Legacy-sourced assets are credited in asset provenance; 1.21.1-compatible models and renderer adaptations are documented in the visual audit. Server-owned advancements cover book, writing, Age, and portal progress; the unimplemented Quinn equivalent is explicitly omitted in advancement notes.
Numbers, sky, and extra items Base-25 number glyphs, celestial modifiers and eclipses, Symbol Portfolios, the OP-only Link Modifier, and optional Ruins pages were follow-up additions. Legacy page semantics are adapted to the modern authoring plan rather than a binary copy of 1.12.2 worldgen.

Compatibility and migration

NeoForge 21.1.264 is the minimum 21.1 build. A player passed the singleplayer client with the optional stack, then a local dedicated server including Immersive Portals, before the minimum was raised. See the compatibility decision. JEI 19.69.0.457 and Serene Seasons 10.1.0.9 received their own player checks; Create/Ponder, Immersive Portals, TerraBlender/biome add-ons, Serene Seasons, JEI, and Ruins remain optional. Ecliptic Seasons is deliberately not integrated: its 1.21.1 public API does not support the required live Age registration and per-Age calendar control. Missing optional mods must not prevent the core mod from loading.

Known older writing/book, Age-plan, and workstation formats have explicit migration or stable-default handling. An Age registry and its dimension folders must be backed up together. Removed mods, missing custom registry objects, and arbitrary prerelease saves are not guaranteed to load. Retiring an Age through the creative Link Modifier archives its data and invalidates its UUID; that intentional destructive operation is not a migration. See the old-save boundary.

Release validation and limits

The 0.6.11.0 regression candidate passed ./gradlew --offline build and fresh-world GameTest runs: core 91/91, generation 129/129, and environment 103/103. The player reported an in-game pass for that candidate. The 1.0.0.1 release candidate additionally allows Number Pages to set Celestial Size. The 1.0.0.2 release makes Binder status diagnostics an OP-only, default-off world setting. Its offline build and core GameTests passed (93/93), and the player reported an in-game pass. The preceding 1.0.0.0 candidate passed core and generation GameTests. Its environment archive stalled in the first 50-test batch, repeatedly printing its field without completing; it was stopped and is not counted as a 1.0.0.0–1.0.0.2 pass. The previous 0.6.11.0 run of that same suite passed 103/103. The focused sky, season, and number-page in-game checks in the regression matrix remain useful regression checks, not claimed full-matrix passes. The Gitea release changelog records the tested JAR and verified SHA-256.

These results do not prove every two-player race, full restart, migration from every development world, or optional-mod combination. The specific manual matrix remains in M7 regression; those broader combinations are known validation limits, not claimed passes. Modern chunk and tick budgets, safer portal validation, 1.21.1 world-height and biome APIs, and the dynamic-dimension backend are deliberate deviations from Legacy. A complete Legacy worldgen or link-property port is outside this milestone.