Public Access
95 lines
3.8 KiB
Markdown
95 lines
3.8 KiB
Markdown
# Rivencraft
|
|
|
|
Rivencraft is a clean, incremental port of the ideas and gameplay of
|
|
[Mystcraft Legacy](https://github.com/Mystcraft/Mystcraft-Legacy) to Minecraft
|
|
1.21.1 on NeoForge.
|
|
|
|
The bootstrap and books/linking milestones are complete. The project currently
|
|
provides functional Linking Books and randomly seeded, persistent vanilla-like
|
|
Ages created from page-free Descriptive Books. Symbols, instability, and the
|
|
full writing mechanics have not been ported yet.
|
|
|
|
## Linking Book
|
|
|
|
Craft a Linking Book from a vanilla book and an ender pearl, then use it in the
|
|
air. An unbound book opens a screen where it can be named and bound to the
|
|
current location. A bound book opens its destination screen and travels when
|
|
its preview panel is clicked. The destination is stored on the item and
|
|
survives inventory and world saves. Travel only succeeds if the target
|
|
dimension is loaded and a non-fluid, passable landing position can be found
|
|
nearby.
|
|
|
|
Right-click an empty vanilla lectern with a Rivencraft book to convert it into
|
|
a Book Stand and place the book on it. Use a Linking Book on the stand by
|
|
right-clicking with an empty hand. Sneak-right-click with an empty hand to take
|
|
the book back and restore the vanilla lectern. Breaking a Book Stand drops both
|
|
the stored book and a vanilla lectern.
|
|
|
|
Bound Linking Books request a server-validated 32-by-32-by-32 snapshot around
|
|
their destination. The book keeps its target-centered close-up framing as a
|
|
rotating Ponder scene on the left page, backed by the
|
|
destination biome's sky color. The snapshot is visual only; the server
|
|
independently validates every link.
|
|
|
|
## Descriptive Book
|
|
|
|
Open a page-free Descriptive Book, name its Age, and press Create. Rivencraft
|
|
assigns the book a permanent Age UUID, creates a dedicated vanilla-like runtime
|
|
dimension, and prepares a five-by-five cobblestone arrival platform at the
|
|
highest suitable nearby terrain. If no sturdy surface is available, the
|
|
platform is generated at Y=63. Reopen the book and click its preview to travel.
|
|
Copies of the written book continue to resolve to the same persistent Age
|
|
across server restarts.
|
|
|
|
Linking creates a bound Return Link to the exact source position and orientation
|
|
according to the configured Return Link policy.
|
|
|
|
Server owners can set `descriptive_books.return_link_mode` in Rivencraft's
|
|
server config to `ON_CREATION` (default), `ALWAYS`, or `DISABLED`.
|
|
|
|
## Requirements
|
|
|
|
- A Java 21 JDK
|
|
- Minecraft 1.21.1
|
|
- NeoForge 21.1.251 or newer in the 21.1 line
|
|
- Ponder 1.0.82 for Minecraft 1.21.1 (client)
|
|
- Dynamic Dimensions AR Edition 0.9.1 and Bad Packets 0.8.2 (client and server)
|
|
|
|
## Build and run
|
|
|
|
```shell
|
|
./gradlew build
|
|
./gradlew runClient
|
|
```
|
|
|
|
The built mod is written to `build/libs/`.
|
|
|
|
## Versioning
|
|
|
|
Rivencraft versions use `x.y.z.b`:
|
|
|
|
- `x` changes for a major public release.
|
|
- `y` changes when a development milestone is completed.
|
|
- `z` changes for each release slice within the current milestone.
|
|
- `b` changes for bug fixes and additional work within that release slice.
|
|
|
|
The build component resets to zero when a new release slice begins. Completing
|
|
a milestone increments `y` and resets both `z` and `b` to zero. For example,
|
|
milestone 2 development can progress from `0.1.1.0` to `0.1.1.1`, then
|
|
`0.1.2.0`; completing the milestone produces `0.2.0.0`.
|
|
|
|
## Porting approach
|
|
|
|
Mystcraft Legacy targets Forge for Minecraft 1.12.2. Rivencraft therefore
|
|
ports one subsystem at a time onto current registries, codecs, data packs, and
|
|
NeoForge APIs instead of importing the legacy source tree wholesale.
|
|
|
|
See [docs/PORTING.md](docs/PORTING.md) for the initial roadmap and provenance
|
|
rules.
|
|
|
|
## License
|
|
|
|
Rivencraft is licensed under LGPL-3.0-or-later. Mystcraft Legacy is also
|
|
LGPL-3.0; copied or adapted upstream code must retain its copyright and license
|
|
notices. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
|