Public Access
582 lines
35 KiB
Markdown
582 lines
35 KiB
Markdown
# Minecraft 26.3 beta port workspace
|
||
|
||
This is an **experimental beta port** for issues #97–#104, not gameplay parity
|
||
with the Minecraft 1.21.1 release. The 26.3 backend persists separate Ages and
|
||
their seeds. Books, the Book Binder, and the Ink Mixer work, and the Binder can
|
||
author Standard, Amplified, Island, Flat, Void, or Cave terrain with supported
|
||
biome-distribution pages, selected material/vegetation/structure features, and
|
||
independent Age weather. Celestial/lighting systems, instability, crystal
|
||
portals, and much of the 1.21.1 gameplay remain unported. Use a test world and keep a backup; do not
|
||
substitute this JAR for the 1.21.1 mod or import 1.21.1 saves.
|
||
|
||
The entries below record how the port was built, including earlier alpha-only
|
||
limitations that were addressed by later slices.
|
||
|
||
The creative tab contains the two Books, Crystal Block and Crystal Shard;
|
||
the player verified these in game. Unbound Linking Books use the Legacy
|
||
sprite, and four Crystal Shards craft into a Crystal Block; both were also
|
||
verified in game. The current local iteration adds Budding Crystal and all
|
||
four blue crystal growth stages with vanilla-style harvesting. Natural crystal
|
||
formation generation is not yet ported; use Creative or commands to obtain a
|
||
Budding Crystal for this test. The player verified the growth chain in game.
|
||
The next local slice adds the Link Panel Page as a separate creative entry,
|
||
using the existing item texture. Blank Pages remain unavailable in Creative;
|
||
the player verified the Link Panel's appearance in game. Ink Vials now use
|
||
the existing crafting recipe and animated sprite. With paper in the other
|
||
hand, an Ink Vial prepares a Link Panel for two of its sixteen ink uses, as
|
||
in the current 1.21.1 default. The player verified the Ink Vial interaction
|
||
in game. Symbol writing remains unported.
|
||
A prepared Link Panel can now be combined shapelessly with leather to craft
|
||
an unwritten Linking Book, as in 1.21.1. This custom recipe rejects a blank
|
||
Page and extra ingredients. The first Book Binder slice now assembles random-Age
|
||
Descriptive Books from leather and a Link Panel. Authored pages remain later.
|
||
|
||
The next local `1.0.1.10-alpha.1` slice exposes all eight combinations of
|
||
plain, Disarm, Maintain Momentum, and Intra-Linking Link Panels in the Link
|
||
Pages creative tab. Leather crafting preserves those flags on the Linking
|
||
Book. Intra-Linking permits same-dimension travel; Maintain Momentum rotates
|
||
horizontal speed to the destination yaw; Disarm leaves the player's inventory
|
||
at the departure point after a successful teleport. These are development
|
||
variants until the Ink Mixer is ported; other Link Panel modifiers are not
|
||
implemented in 26.3. The player passed this modifier slice in game.
|
||
|
||
The local `1.0.1.11-alpha.1` slice adds a craftable Book Binder with persistent
|
||
leather, Link Panel, and output slots. Name an Age in its GUI and press Bind;
|
||
the server creates a random prototype Age and places its completed Descriptive
|
||
Book in the output. Disarm and Maintain Momentum carry from the panel into the
|
||
book; Intra-Linking has no effect on Age creation. Symbol-page authoring and
|
||
the Ink Mixer remain unported. This slice passes the build and dedicated-server
|
||
smoke test. The player passed crafting and travel in game, but found that E
|
||
closed the focused title field and the provisional layout did not match the
|
||
existing 1.21.1 Binder GUI.
|
||
|
||
The local `1.0.1.12-alpha.1` follow-up reuses the 1.21.1 Binder layout: title
|
||
bar, cover and output at opposite sides, and a central Link Panel page strip.
|
||
The title persists in the block, the missing-panel cue pulses red, and a
|
||
focused title field consumes inventory/hotbar keys. Click the output once to
|
||
bind, then click again to take the completed book. Authored symbol strips and
|
||
the full 1.21.1 Binder grammar remain unported. This same slice also ports the
|
||
1.21.1 Ink Mixer block, menu, animation, modifier additives, 16-ink-per-panel
|
||
cost, and automatic vial exchange. The creative tab includes it and its
|
||
vanilla-shaped recipe is available. This slice needs an in-game Binder visual/
|
||
keyboard check and Ink Mixer interaction check.
|
||
|
||
The local `1.0.1.13-alpha.1` iteration makes Binder assembly place the new
|
||
Descriptive Book directly on the cursor with one click. It also renders the
|
||
five-page strip from the 1.21.1 GUI and refreshes the Mixer's virtual result
|
||
in the same server click that changes paper or ink. The Mixer now consumes
|
||
one ink unit and one paper per Link Panel (16 panels per full vial); additive
|
||
chances reset when a panel is taken. In-game retest of the first-update
|
||
behavior and Binder visual/click flow is pending.
|
||
|
||
The local `1.0.1.14-alpha.1` follow-up compares the current 26.3 Binder against
|
||
the new dev-image sequence. The Binder no longer paints five permanently empty
|
||
pages: the first strip page appears when a Link Panel is inserted or carried,
|
||
and the missing-panel cue remains above it. Clicking that page inserts/removes
|
||
the Link Panel using the same server-owned cursor flow as 1.21.1. Its tooltip
|
||
also shows the stored panel. Multi-page symbol writing and strip scrolling
|
||
cannot be exercised yet because symbol pages are still unported to 26.3.
|
||
|
||
The local `1.0.1.15-alpha.1` Binder polish uses the Link Panel's actual 16×16
|
||
item icon for the missing-panel cue instead of a full-size page sprite. The
|
||
red pulse and tooltip remain confined to that icon.
|
||
|
||
The local `1.0.1.16-alpha.1` slice adds the bundled 1.21.1 symbol-page
|
||
identities to the 26.3 creative menu, grouped by category. Their names and
|
||
descriptions are reused from the 1.21.1 translations, and the Page item now
|
||
persists each symbol ID. These pages currently use the generic symbol-page
|
||
artwork; the Legacy-style runtime glyph compositor has not been ported.
|
||
They cannot yet be inserted into the Binder or change Age generation. This is
|
||
the page-data foundation for the next authored-writing slice.
|
||
|
||
The local `1.0.1.17-alpha.1` follow-up derives biome pages from the active
|
||
26.3 biome registry instead of only the older bundled list. It excludes the
|
||
TerraBlender staging placeholder and separates cave/Nether biomes. Full-block
|
||
materials and true source-fluid blocks also receive registry-derived pages,
|
||
covering eligible new and modded blocks. Five 26.3 feature symbols cover
|
||
poplar trees, fallen poplars, shelf mushrooms, red shrubs, and abandoned
|
||
camps. These feature pages are identities only until their Age-generation
|
||
handlers are ported. Biome, material, and feature pages still use generic
|
||
artwork and cannot yet be placed in the Binder.
|
||
|
||
The local `1.0.1.18-alpha.1` follow-up restores the 1.21.1 animated redaction
|
||
for Corrupted Page names and descriptions. It does not yet port the dynamic
|
||
glyph artwork used for other symbol pages.
|
||
|
||
The local `1.0.1.19-alpha.1` slice ports the runtime glyph compositor for
|
||
symbol Page items. It uses the shared Legacy component sheet and page
|
||
parchment with a bounded 256-texture client cache; generated textures are
|
||
released on resource reload. Registry-derived biome and material pages use
|
||
the same deterministic four-word poem pattern as 1.21.1. No per-symbol PNGs
|
||
are generated in the source tree. Binder insertion and authored Age generation
|
||
are still unported.
|
||
|
||
The local `1.0.1.20-alpha.1` visual follow-up enlarges symbol artwork on Page
|
||
items, slightly thickens the component strokes, and centers number glyphs at a
|
||
larger size so they remain readable in inventory and creative-menu icons.
|
||
|
||
The local `1.0.1.21-alpha.1` slice ports the Binder's ordered, scrollable
|
||
symbol-page strip. Pages persist in its block inventory and can be inserted,
|
||
removed, and moved via the cursor or shift-click. A Binder with symbol pages
|
||
cannot yet produce a book: authored Age compilation is the next port step, and
|
||
silently producing a random Age would consume the player's writing incorrectly.
|
||
|
||
The local `1.0.1.22-alpha.1` visual follow-up gives large Binder pages the
|
||
transparent, full-size Legacy glyph composition. Item icons retain their
|
||
separate parchment-backed, reduced-size artwork.
|
||
|
||
The local `1.0.1.23-alpha.1` follow-up places Binder glyph overlays in a later
|
||
26.3 GUI stratum than the page atlas, preventing texture batching from drawing
|
||
the opaque page backgrounds over the dynamic artwork.
|
||
|
||
The local `1.0.1.24-alpha.1` follow-up renders Binder page glyphs through
|
||
their working special item model, scaled to the page thumbnail. Direct GUI
|
||
blitting of the generated texture remained blank in the 26.3 client.
|
||
|
||
The local `1.0.1.25-alpha.1` follow-up marks temporary Binder preview stacks
|
||
for glyph-only special-model rendering. The full-size transparent artwork now
|
||
uses the working item pipeline without drawing a second, smaller page outline.
|
||
|
||
The local `1.0.1.26-alpha.1` corrects the temporary preview component's codec
|
||
registration, which NeoForge 26.3 requires during bootstrap.
|
||
|
||
The local `1.0.1.27-alpha.1` slice applies the first authored Age subset:
|
||
Standard terrain plus at most one Biome page. The selected biome is persisted
|
||
with the Age and used by a fixed-biome Overworld noise generator on creation
|
||
and reload. Ordered page IDs are stored on the finished book. Other page
|
||
combinations remain in the Binder and cannot yet be assembled, preventing
|
||
silent loss of unsupported writing. Multi-biome distribution, other terrain
|
||
profiles, and feature/material pages still need their 26.3 generation ports.
|
||
|
||
The `1.0.1.28`–`1.0.1.32` slices add Tiled, Grid, Native, and five scaled
|
||
biome distributions; multiple authored Biome pages; Amplified and Island
|
||
terrain; and saved terrain/biome plans across reload. A Binder or Ink Mixer
|
||
beside another block no longer hides that block's faces. Unsupported authoring
|
||
still stays in the Binder rather than silently producing an incorrect Age.
|
||
|
||
The local `1.0.1.33-beta.1` slice adds Flat and Void terrain to Binder
|
||
authoring. Flat uses vanilla's superflat layers; Void has no generated floor
|
||
and uses the selected Biome for its environmental rules. Each accepts zero or
|
||
one authored Biome page. Unsupported multi-biome Flat/Void books remain in the
|
||
Binder until their custom generator is ported. The operator probe can create
|
||
test Ages with `rivencraft_port age create <name> <seed> flat|void`.
|
||
|
||
The local `1.0.1.34-beta.1` follow-up starts Flat's solid layers at Y=0
|
||
(bedrock at 0, dirt at 1–2, grass at 3) and lands players at the ground surface
|
||
instead of creating an elevated fallback platform. This affects newly
|
||
generated Flat chunks; previously generated Age chunks are not rewritten.
|
||
|
||
The local `1.0.1.35-beta.1` follow-up enables biome decoration on newly
|
||
generated Flat chunks, allowing the selected biome's trees, vegetation, and
|
||
other placed features to appear on the Flat surface. Void remains undecorated.
|
||
|
||
The local `1.0.1.36-beta.1` slice accepts multiple Biome pages with Flat and
|
||
Void terrain. It ports the 1.21.1 authored-biome Flat generator to 26.3, so
|
||
Tiled, Grid, and scaled regions affect climate in both terrain types and
|
||
surface decoration in Flat. Void continues to generate no floor or biome
|
||
decoration. The operator-only `age create_multi` probe creates two-biome test
|
||
Ages for the dedicated-server smoke test.
|
||
|
||
The local `1.0.1.37-beta.1` slice adds the Cave terrain page to Binder
|
||
authoring. It uses Minecraft's caves noise settings, accepts Cave and Nether
|
||
biome pages (including multi-biome distribution), and searches below Y=64 for
|
||
a safe arrival instead of landing on the roof. The 26.3 vanilla Cave preset
|
||
defaults to water below Y=32, so this port derives a dry Cave setting with
|
||
air as its default fluid and the sea level below the world floor. This applies
|
||
to newly generated Cave chunks; it does not drain existing chunks. Cave-specific Nether surface
|
||
materials from 1.21.1 are not ported yet. The dedicated-server smoke now
|
||
creates and reloads Cave Ages alongside the other terrain families.
|
||
|
||
The dry-Cave follow-up is packaged as `1.0.1.38-beta.1`; no 26.3 release is
|
||
published until the in-game check passes and publication is explicitly requested.
|
||
|
||
The local `1.0.1.39-beta.1` follow-up rejects fluid at both feet and head
|
||
height during safe-landing searches. It also refuses to carve the fallback
|
||
platform into submerged space if no dry footing can be found.
|
||
|
||
The `1.0.1.40-beta.1` port slice seeds terrain and biome selection for
|
||
Descriptive Books with no authored symbol pages. It uses the same terrain and
|
||
biome-controller rank weights as the 1.21.1 line, freezes the resulting plan
|
||
in the Age index, and accepts the result after restart. The operator-only
|
||
`age create_random <name> <seed>` probe exercises this path. Random feature,
|
||
sky, weather, and instability choices are not yet ported; this slice covers
|
||
terrain and biomes only.
|
||
|
||
The `1.0.1.41-beta.1` slice establishes an Age-scoped decoration wrapper
|
||
for 26.3 and accepts one Block material page immediately before a Rocks feature
|
||
page. Newly generated surface chunks place small rock clusters made from that
|
||
block without modifying the shared biome registry. The selected block and
|
||
generator survive a restart. Cave and Void terrain remain unsupported for this
|
||
first surface-feature path; unsupported combinations stay in the Binder.
|
||
Random feature selection, unpaired materials, duplicate feature pages, and
|
||
instability scoring remain future port steps.
|
||
|
||
The local `1.0.1.42-beta.1` follow-up lets a Rocks page choose a deterministic
|
||
full-block material when no Block page precedes it. Repeated Rocks pages now
|
||
add independent placement attempts (up to 32) instead of being rejected. The
|
||
ordered material choices are frozen in the Age index and restored after a
|
||
restart; old single-material beta Ages still load. An explicit Block page
|
||
must still directly precede the Rocks page it modifies. Most other feature
|
||
pages and material-feature pairings remain unported.
|
||
|
||
The local `1.0.1.43-beta.1` slice replaces the temporary 3×3 Rocks piles
|
||
with Minecraft 26.3's forest-rock block-blob feature and its placement rules,
|
||
matching the 1.21.1 Age feature path more closely. The selected material and
|
||
repeat count still come from the frozen Age plan. Only newly generated chunks
|
||
use the new rock shape; previously generated chunks remain unchanged.
|
||
|
||
The local `1.0.1.44-beta.1` slice ports ordered Flowers, Trees, and Huge
|
||
Trees pages to surface Ages. Their 26.3 vanilla placed features run after
|
||
biome decoration, with the Age's own seed; repeated pages make independent
|
||
placement attempts. Cave/Void terrain and cave/Nether/End biome pools are
|
||
not treated as surface vegetation. The feature plan survives server restart;
|
||
already generated chunks do not gain new decoration.
|
||
|
||
The local `1.0.1.45-beta.1` slice ports the Dungeons page for Standard,
|
||
Amplified, and Island noise terrain. It uses the 1.21.1 placement definition
|
||
(eight monster-room attempts per page per chunk across the build height),
|
||
stores repeat count with the Age, and rejects Dungeons pages on Flat, Void,
|
||
or Cave terrain. New chunks only; existing chunks are not regenerated.
|
||
|
||
The local `1.0.1.46-beta.1` slice adds Surface Lakes, Deep Lakes, and Small
|
||
Lakes on surface noise terrain. A Fluid page immediately before a lake page
|
||
selects its fluid. Unmodified pages choose a seeded fluid from the same source-
|
||
fluid pool exposed in Creative, with repeated choices and their order saved
|
||
with the Age. Surface/Small Lakes retain the 1.21.1 one-in-twelve attempt rule;
|
||
Deep Lakes retain vanilla underground placement. These pages currently require
|
||
Standard, Amplified, or Island terrain. Existing chunks do not redecorate.
|
||
|
||
The local `1.0.1.47-beta.1` slice adds authored Floating Islands alongside
|
||
Standard, Amplified, Island, Flat, and Void terrain. A preceding Block page
|
||
sets the island core material; otherwise each occurrence resolves a seeded
|
||
material from the full-block pool. The 1.21.1 shape, high altitude, rarity,
|
||
and biome-dependent grass/dirt cap are retained. Repeated pages use independent
|
||
island seeds. Cave terrain remains unsupported for this feature.
|
||
|
||
26.3 combines base noise, surface, and cave carving in one terrain operation.
|
||
Floating Islands run after that operation and before decoration, so the added
|
||
islands are not cut by the base terrain's carvers. The saved feature plan is
|
||
used again after restart and for new chunks; existing chunks keep their blocks.
|
||
|
||
The local `1.0.1.48-beta.1` slice adds authored Tendrils on every terrain
|
||
type, including Cave and Void. A preceding Block page selects the material;
|
||
unmodified occurrences resolve seeded materials from the full-block pool.
|
||
Repeated pages use independent paths, with up to 32 occurrences per feature.
|
||
Mixed Floating Islands/Tendrils retain their authored order in the saved plan.
|
||
|
||
Tendrils retain the 1.21.1 branching path algorithm, source rates, and vertical
|
||
distribution concentrated below Y=128. They can replace existing terrain while
|
||
preserving bedrock. As with Floating Islands, they run after 26.3's combined
|
||
terrain operation and before decoration. Build checks are automated; in-game
|
||
generation, appearance, and restart validation are handed to the player.
|
||
|
||
The local `1.0.1.49-beta.1` slice adds the Skylands feature page. Its seeded
|
||
seven-octave filter removes base terrain at/below a varying cutoff near Y=76
|
||
and removes liquid above it, preserving the upper solid terrain. It accepts
|
||
all terrain types and no Block modifier. On low Flat terrain this removes
|
||
the base layers; on Void it leaves the empty base unchanged.
|
||
|
||
The filter runs once before authored Floating Islands and Tendrils, matching
|
||
1.21.1; duplicate Skylands pages do not compound the filter. Its flag is saved
|
||
with the terrain-feature plan. Existing chunks are unchanged. Try Amplified
|
||
terrain for a clear visual check; generation and restart validation are manual.
|
||
|
||
The local `1.0.1.50-beta.1` slice ports Spheres and Spikes using the 1.21.1
|
||
generation algorithms. Spheres add solid nodes on all terrain types, including
|
||
Cave and Void, while preserving bedrock. Spikes require solid surface terrain:
|
||
Standard, Amplified, Island, or Flat. Their circular footprint stays in one
|
||
chunk and must have solid ground beneath every column.
|
||
|
||
Each page accepts a preceding Block material or resolves a seeded random
|
||
material when unmodified. Repeated pages have independent placement seeds,
|
||
up to 32 per feature. Spheres run during terrain construction, after Skylands;
|
||
Spikes run after biome decoration. Both use the existing saved solid-feature
|
||
plan. New chunks only; in-game appearance and restart checks remain manual.
|
||
|
||
The local `1.0.1.51-beta.1` slice ports Obelisks. It preserves the 1.21.1
|
||
one-in-128 candidate chance per chunk/occurrence, 4×4 plinth, and 2×2 shaft
|
||
extending 12 blocks above it. Placement requires dry, sturdy ground across
|
||
the base, at most two blocks of surface variation, and clear/replaceable
|
||
space for the complete structure. The footprint stays within its chunk.
|
||
|
||
Obelisks support Standard, Amplified, Island, and Flat terrain. A preceding
|
||
Block page sets their material; otherwise a seeded full-block material is
|
||
selected. Repeated pages make independent attempts, up to 32 occurrences.
|
||
Spikes and Obelisks share surface-stage classification and preserve their
|
||
authored order within that stage. World and restart validation are manual.
|
||
|
||
The local `1.0.1.52-beta.1` slice ports Crystal Formations using the 1.21.1
|
||
surface-mound algorithm and the existing blue crystal blocks. Each occurrence
|
||
has a one-in-fifteen candidate chance per chunk; suitable dry, nearly level
|
||
ground produces a 3×3 mound with budding crystal and occasional small buds.
|
||
The existing budding blocks continue growing crystals through random ticks.
|
||
|
||
Crystal Formations accepts Standard, Amplified, Island, and Flat terrain,
|
||
but not Cave/Void terrain or Block/Fluid modifiers. Up to 32 repeated pages
|
||
make independent attempts. The ordered feature plan survives restart, and
|
||
only newly generated chunks receive formations. For a quick manual test,
|
||
bind a Flat/Plains Age with several Crystal Formations pages, inspect the
|
||
blue mounds and bud growth, then revisit after restarting the world.
|
||
|
||
The local `1.0.1.53-beta.1` slice ports Dense Ores. Each page replays eligible
|
||
ore placements from the Age's actual biomes, preserving their height ranges,
|
||
replacement rules, and biome filters. Vanilla and modded ore features are
|
||
recognized by their ore targets; custom placements can opt in through the
|
||
`rivencraft:dense_ores` placed-feature tag, just as in 1.21.1.
|
||
|
||
Up to 32 pages add independent passes on Standard, Amplified, Island, or Cave
|
||
terrain. Flat/Void and Block/Fluid modifiers are unsupported; an explicitly
|
||
authored biome pool must contain at least one ore-producing biome. The count
|
||
survives restart. Only new chunks gain extra ore, and this slice does not yet
|
||
port the later instability system or random-Age feature selection.
|
||
|
||
For manual validation, create a Standard/Plains Age with several Dense Ores
|
||
pages and inspect underground ore abundance, then restart and explore more
|
||
chunks. A Cave Age with a Nether biome can check Nether ore placements too.
|
||
|
||
The local `1.0.1.54-beta.1` slice ports the Star Fissures page. On first book/
|
||
operator arrival, it carves the 1.21.1 Legacy-shaped rift near the arrival chunk
|
||
and places a starfield portal at the dimension's minimum Y. Cave terrain keeps
|
||
its bedrock roof. All terrain types are supported; repeated pages still create
|
||
one fissure, and Block/Fluid modifiers are not accepted.
|
||
|
||
The first arrival and completed generation are saved per Age, so revisits and
|
||
restarts do not recarve the rift. Touching its bottom returns entities to a safe
|
||
location near the shared Overworld spawn, not a bed, with the original fissure
|
||
sound. The portal is unobtainable and inert in the Overworld. Random-Age feature
|
||
selection remains later work; author a Star Fissures page to test this slice.
|
||
|
||
For manual validation, create a Flat/Plains Age with Star Fissures. Look near
|
||
the arrival point (generally east/south), descend through the rift, and touch
|
||
the starfield to return. Re-enter after restarting; check that the same fissure
|
||
and its portal still work. A Cave Age checks that carving leaves the roof intact.
|
||
|
||
The local `1.0.1.55-beta.1` slice adds authored Villages, Mineshafts, and
|
||
Strongholds. Repeated pages (up to 32 per type) scale the registered placement
|
||
using the 1.21.1 frequency/spacing and ring-count rules. Copies are Age-local:
|
||
the Overworld's placements and biome source are not modified. Authored
|
||
structures can bypass their usual biome eligibility without changing the
|
||
terrain biome; their instability cost remains pending with the instability port.
|
||
|
||
Villages and Strongholds allow surface noise terrain and Flat, but not Cave
|
||
or Void. Mineshafts allow noise terrain including Cave, but not Flat or Void.
|
||
These pages do not accept Block/Fluid modifiers. Their ordered counts persist
|
||
in the feature plan. In books using these structure pages, unselected sets
|
||
from these three families are disabled; other structure families and random
|
||
feature selection remain later port work. Earlier books without this new
|
||
structure plan retain their existing native structure behavior.
|
||
|
||
For manual checks, bind a new Standard/Plains Age with Villages, Mineshafts,
|
||
and Strongholds, then use `/locate structure minecraft:village_plains`,
|
||
`/locate structure minecraft:mineshaft`, and
|
||
`/locate structure minecraft:stronghold` to inspect generated structures.
|
||
Compare one page with several copies in a different Age, and restart/revisit.
|
||
Flat/Plains with Villages and an otherwise incompatible surface biome with
|
||
Villages provide separate terrain and biome-override checks.
|
||
|
||
The local `1.0.1.56-beta.1` follow-up fixes authored structures outside their
|
||
normal biomes. Build 55 only bypassed the final biome check; 26.3's jigsaw
|
||
placement can reject a whole biome column earlier. The override now supplies
|
||
the generation context's biome predicate before either check, only for the
|
||
explicitly authored structures in that Age. Terrain/height/geometry rules and
|
||
unrelated structures keep their normal checks.
|
||
|
||
Test with a new Standard or Flat Age using a normally unsupported village
|
||
biome, such as The End, plus a Villages page. Multiple copies increase density.
|
||
Use `/locate structure #minecraft:village` rather than selecting only the
|
||
Plains variant: an override Age can choose other village styles. Old chunks
|
||
that already rejected their structure attempt are not regenerated; existing
|
||
build-55 Ages can also test the fix in previously unexplored chunks.
|
||
|
||
The local `1.0.1.57-beta.1` slice adds the remaining 1.21.1 authored structure
|
||
families: Nether Fortresses, Bastions, Trial Chambers, Buried Treasure,
|
||
Shipwrecks, Ocean Ruins, Pillager Outposts, Ruined Portals, Nether Fossils,
|
||
Ancient Cities, and Trail Ruins. It also enables the existing 26.3-only
|
||
Abandoned Camps page using Minecraft's registered camp set and variants.
|
||
|
||
All 15 supported structure-set pages share saved counts, biome overrides,
|
||
and repeated-page density scaling (up to 32 per type). Fortress and Bastion
|
||
sets reuse the separate 1.21.1 placement definitions; the combined vanilla
|
||
Nether set is disabled for authored structure plans so the pages stay separate.
|
||
Unselected supported families are gated in these plans. Already generated
|
||
chunks and Ages without an authored structure plan keep their existing path.
|
||
|
||
Only Villages/Strongholds support Flat; none support Void. Fortress, Bastion,
|
||
and Nether Fossils require Cave terrain. Villages/Strongholds, Buried Treasure,
|
||
Shipwrecks, Ocean Ruins, Outposts, Trail Ruins, and Abandoned Camps require
|
||
surface terrain. Mineshafts, Trial Chambers, Ancient Cities, and Ruined Portals
|
||
allow surface noise or Cave terrain. Physical terrain/height checks still apply
|
||
even when the authored page overrides biome eligibility. Instability penalties
|
||
and random selection of these features are not part of this slice.
|
||
|
||
For a quick in-game check, author a new Standard Age with Trial Chambers,
|
||
Trail Ruins, and Abandoned Camps. Use `/locate structure minecraft:trial_chambers`,
|
||
`/locate structure minecraft:trail_ruins`, and
|
||
`/locate structure minecraft:abandoned_camp_forest` to inspect actual generation.
|
||
Separately, test a Cave/Nether Wastes Age with Fortress and Bastion pages
|
||
(`/locate structure minecraft:fortress` and
|
||
`/locate structure minecraft:bastion_remnant`). Repeated pages and restart/
|
||
new-chunk generation remain useful checks. Structures can still fail when
|
||
their geometry or required terrain is unavailable.
|
||
|
||
The local `1.0.1.58-beta.1` slice enables Caves and Ravines feature pages.
|
||
They add carving to the chosen noise terrain (Standard, Amplified, Island,
|
||
or Cave); they are not aliases for the Cave terrain page. Flat/Void and
|
||
Block/Fluid modifiers remain unsupported, matching the 1.21.1 feature rules.
|
||
|
||
Authored paths retain 1.21.1's source range and seeded salts, using 26.3's
|
||
registered cave/Nether-cave/canyon carvers. Nether-biome sources select the
|
||
Nether cave carver and skip Ravines. The paths merge into the native carving
|
||
mask before Minecraft applies aquifer, replacement, and surface rules; no
|
||
second approximation carves raw air after terrain generation. Biomes are not
|
||
replaced. The page list is saved, and old plans default to no extra carving.
|
||
|
||
Duplicate pages are accepted up to 32 per type, but repeat the same seeded
|
||
pattern in 1.21.1; this port skips those redundant passes rather than multiplying
|
||
carving density. Random feature selection and instability remain pending.
|
||
New chunks only. For manual testing, author a Standard/Plains Age with one
|
||
Caves page and one Ravines page and inspect underground in Spectator mode.
|
||
Restart and explore more chunks. A separate Cave/Nether Wastes Age with Caves
|
||
checks the Nether variant without altering its biome distribution.
|
||
|
||
The local `1.0.1.59-beta.1` slice audits page presentation for the current port.
|
||
Each Symbol Page now reports whether its effect is implemented. Unported pages
|
||
have red-tinted item artwork and a red Binder page background, plus a red status
|
||
line. Supported pages retain their normal artwork. This indicates port
|
||
availability only: supported pages in an invalid order, terrain combination,
|
||
or excessive quantity are not individually tinted red. Link Panels are unchanged.
|
||
|
||
The stale Standard/one-Biome message is removed. Structure descriptions now
|
||
describe authored biome overrides rather than falsely requiring vanilla biome
|
||
eligibility. Material pages explain the immediate-before-feature requirement;
|
||
Flat/Caves/Ravines/Floating Islands descriptions reflect the current rules.
|
||
These overrides are specific to the 26.3 language file and do not change 1.21.1.
|
||
No new generation effect is introduced in this UI slice.
|
||
|
||
For manual validation, compare a working Villages or Caves page with an
|
||
unported celestial or lighting page in Creative inventory
|
||
and the Binder. Only the latter should be red; supported Block/Fluid modifiers
|
||
and biome controllers should stay normal even though they need other pages.
|
||
|
||
The local `1.0.1.60-beta.1` slice implements Poplar Trees, Fallen Poplar Trees,
|
||
Red Shrubs, and Shelf Mushrooms. They use the existing saved vegetation plan,
|
||
ordered attempts, surface-biome rules, and combined 32-vegetation-page limit.
|
||
They accept Standard, Amplified, Island, and Flat terrain, but not Cave/Void
|
||
or Block/Fluid modifiers. The four pages now show as supported, without a red tint.
|
||
|
||
Poplar Trees uses the vanilla red/orange/yellow leaf-litter tree variants with
|
||
their relative Dappled Forest weights and six attempts per page per chunk;
|
||
it does not also select spruce or fallen trees. Fallen Poplar Trees makes one
|
||
surface attempt per page, using the vanilla fallen-tree feature, decorators,
|
||
and sapling survival rules. Red Shrubs uses the vanilla patch placement.
|
||
All still require suitable ground and space; authoring does not bypass those
|
||
requirements, and existing chunks are not redecorated.
|
||
|
||
Shelf Mushrooms applies Minecraft's standing/fallen-log decorator to existing
|
||
log groups, not a new tree feature. It can decorate natural trees or logs from
|
||
earlier authored tree pages; no suitable logs means no mushrooms. The vanilla
|
||
side/age/spacing and water-avoidance logic is retained. Writes stay within the
|
||
current chunk and require valid support. Consecutive mushroom pages reuse the
|
||
host scan; adding trees invalidates the cached host list for subsequent pages.
|
||
|
||
For manual testing, bind a new Flat/Plains Age with Poplar Trees, Fallen Poplar
|
||
Trees, Red Shrubs, then Shelf Mushrooms. Check leaf colours, fallen trunks,
|
||
shrubs, and mushrooms on logs. The four pages should no longer be red. Restart,
|
||
revisit existing terrain, and explore new chunks to check persistence.
|
||
|
||
The local `1.0.1.61-beta.1` follow-up removes the inappropriate surface-terrain
|
||
and surface-biome gates from Shelf Mushrooms only. No tree page is required:
|
||
natural logs or generated log Tendrils/Spheres/other features are hosts on
|
||
any terrain, including Void and Cave, and in any biome. Other plants keep their
|
||
existing terrain/biome restrictions. For example, Void + Oak Log + Tendrils +
|
||
Shelf Mushrooms is valid authoring; there must still be exposed log faces.
|
||
|
||
The mushroom scan now considers log faces throughout the chunk height instead
|
||
of treating a connected tendril as a standing tree with a small base-height
|
||
decoration band. Placement retains native replaceability/water checks, valid
|
||
support, random age, a per-side chance, and spacing checks. It does not grow
|
||
hosts or continuously decorate player-built logs after chunk generation.
|
||
Test a new Void Age with the example pages and inspect tendril surfaces.
|
||
|
||
The local `1.0.1.62-beta.1` sound slice reuses the complete 1.21.1 sound manifest
|
||
and all six OGG files directly in the build. Successful Linking/Descriptive Book
|
||
travel now plays the normal, Intra-Linking, or Disarm sound at departure and
|
||
arrival, with the same modifier precedence and cloud bursts as 1.21.1. Failed
|
||
travel stays silent. Star Fissures also play their return sound after arrival,
|
||
instead of relying only on audio sent immediately before a dimension switch.
|
||
Portal and meteor sound events are bundled for their later gameplay ports;
|
||
this does not implement those systems. Binding still uses vanilla page audio.
|
||
Manual checks: normal book travel, Intra-Linking, Disarm, rejected travel, and
|
||
a Star Fissure return. Existing books/Ages do not need to be recreated.
|
||
|
||
The local `1.0.1.63-beta.1` slice ports the six active weather pages: Normal,
|
||
Fast, Slow, Off, Always, and Storm. One weather page is accepted per book and
|
||
its policy is saved in the Age's own data directory. Missing weather pages
|
||
currently use Normal; random weather selection is still part of the pending
|
||
random-trait port. Cave terrain forces Off, matching 1.21.1. Precipitation
|
||
still follows biome temperature and precipitation rules; a desert does not
|
||
start showing rain merely because Always or Storm is selected.
|
||
|
||
26.3 normally shares server WeatherData. Runtime Ages now use an isolated
|
||
native WeatherData instance with its own persisted rain/thunder timers. The
|
||
weather controller runs before the native cycle, allowing vanilla rendering,
|
||
lightning, snow and client dimension-specific packets to handle the result.
|
||
Fixed weather is refreshed before its timers expire; Fast and Slow use the
|
||
1.21.1 duration ranges and preserve saved timers on reload. Overworld weather
|
||
and other Ages are not changed. The vanilla `/weather` command still targets
|
||
the server's global weather, not the independent Age policy.
|
||
|
||
Operator diagnostics: `/rivencraft_port age create_weather <name> <seed> <mode>`
|
||
creates a Flat test Age; `/rivencraft_port age weather_probe <name>` reports
|
||
its policy, rain/thunder state and timers, data independence, and global state.
|
||
For manual testing, bind separate Storm/Always/Off books with Plains, compare
|
||
the Overworld, revisit and restart, and check that Cave + Storm remains dry.
|
||
The six weather pages should no longer be tinted red. Existing Ages get a
|
||
Normal independent cycle; author a new book to select another policy.
|
||
|
||
The local `1.0.1.64-beta.1` fix corrects the Binder's biome compiler: it now
|
||
positively selects biome-category pages instead of treating every page not
|
||
in an exclusion list as a biome. Weather pages no longer trigger an unknown
|
||
biome lookup. The weather fixture command now exercises the same page compiler
|
||
before creating an Age, covering the weather-only symbol list used by a Link
|
||
Panel + Storm book. Existing Binder contents can be reused after updating.
|
||
|
||
The local `1.0.1.65-beta.1` spawn correction removes the Flat-layer shortcut
|
||
and heightmap-only choice for non-Cave Descriptive Book arrivals. The search
|
||
starts at the actual maximum build height and traces each nearby column down
|
||
to its first colliding block, leaves, or fluid. A column without safe dry
|
||
footing/headroom is skipped instead of descending through its roof or water
|
||
into an underground pocket. Leaves are valid footing; fluids are not.
|
||
|
||
This also revalidates a stored Star Fissure arrival from above on non-Cave
|
||
terrain. Cave terrain retains its Y=64-downward search, and bound Linking
|
||
Books retain their exact coordinates. If no natural surface is safe, the
|
||
safety platform is placed above the actual highest obstruction (or floor
|
||
Y=63 in an empty Void), never buried below it. Plain Flat terrain still lands
|
||
on its ground, not an artificially elevated platform. No new Age is required.
|
||
Operator-only `/rivencraft_port age surface_probe <name> <x> <z>` reports the
|
||
actual highest obstruction and a safe nearby surface without creating a
|
||
platform or teleporting. It can generate chunks while inspecting the region.
|
||
|
||
From the repository root:
|
||
|
||
```sh
|
||
./gradlew -p ports/mc263 build
|
||
```
|
||
|
||
This standalone Gradle build uses Minecraft 26.3, NeoForge 26.3.0.99,
|
||
ModDevGradle 2.0.148, and Java 25. The repository root remains the independent
|
||
Minecraft 1.21.1/Java 21 build:
|
||
|
||
```sh
|
||
./gradlew build
|
||
```
|
||
|
||
The beta JAR is under `ports/mc263/build/libs`. Continue the port and its
|
||
full dual-version validation in issues #98–#104 before calling 26.3 stable.
|
||
|
||
The dedicated development server uses `build/run-server`, with its own world
|
||
and properties. Set a nonconflicting `server-port` there before running if
|
||
another Minecraft server is active. The prototype restores all indexed Ages
|
||
during the Overworld load, before initial chunk preparation completes.
|