Public Access
47 lines
2.1 KiB
Markdown
47 lines
2.1 KiB
Markdown
# 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
|
|
|
|
1. **Bootstrap** — NeoForge 1.21.1 build, mod metadata, item registration, and
|
|
CI. **Complete.**
|
|
2. **Books and linking** — descriptive/linking book data components, lectern-like
|
|
interaction, safe teleportation, and return links.
|
|
3. **Ages** — dimension definitions backed by data packs, deterministic seeds,
|
|
lifecycle management, and persistence.
|
|
4. **Writing system** — pages, symbols, notebooks, desks, and book assembly.
|
|
5. **Age grammar** — translate symbol combinations into modern biome, noise,
|
|
dimension-type, and worldgen configuration.
|
|
6. **Instability** — deterministic validation and effects with server-safe
|
|
behavior.
|
|
7. **Structures and polish** — libraries, crystals, portals, recipes, models,
|
|
sounds, advancements, compatibility, and migration tests.
|
|
|
|
## Provenance rules
|
|
|
|
- New code uses the `net.dnorberg.rivencraft` package.
|
|
- 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.
|