Public Access
2.1 KiB
2.1 KiB
Porting plan
Mystcraft Legacy contains more than 700 Java source files and targets Minecraft 1.12.2. The Minecraft world-generation, dimension, registry, networking, and rendering APIs have all changed substantially since that release. The port is split into independently testable milestones.
Milestones
- Bootstrap — NeoForge 1.21.1 build, mod metadata, item registration, and CI. Complete.
- Books and linking — descriptive/linking book data components, lectern-like interaction, safe teleportation, and return links.
- Ages — dimension definitions backed by data packs, deterministic seeds, lifecycle management, and persistence.
- Writing system — pages, symbols, notebooks, desks, and book assembly.
- Age grammar — translate symbol combinations into modern biome, noise, dimension-type, and worldgen configuration.
- Instability — deterministic validation and effects with server-safe behavior.
- Structures and polish — libraries, crystals, portals, recipes, models, sounds, advancements, compatibility, and migration tests.
Provenance rules
- New code uses the
net.dnorberg.rivencraftpackage. - Adapted Mystcraft code must retain its upstream copyright notice and be tracked in this document or a nearby source comment.
- Do not copy generated, binary, or third-party dependency content from the legacy repository.
- Preserve LGPL-3.0-or-later compatibility for the complete distributed mod.
First vertical slice
The first functional target is: create a Descriptive Book, bind it to one server-managed Age definition, travel to that Age, and use a Linking Book to return. This exercises persistence, networking, dimensions, and safety before the symbol grammar is introduced.
Milestone 1 acceptance record
- The project builds on a Java 21 JDK with
./gradlew build. - Mod identity and dependencies are declared in generated NeoForge metadata.
- Registrations are isolated by registry type and use deferred registration.
- The Descriptive Book loads with a model, name, tooltip, and creative tab.
- CI builds every pushed commit and pull request.