Public Access
Port structures, weather, vegetation and safe surface arrivals to 26.3 beta
Build / build (push) Canceled after 0s
Build / build (push) Canceled after 0s
This commit is contained in:
1 parent
c223f3fdca
commit
48fbae9be9
38 files changed
+1474
-93
No files matched your search
@@ -681,6 +681,225 @@ resource packaging, and static checks pass for this slice. Generation, visual
|
||||
rendering, actual return travel, and restart checks are left to the player;
|
||||
no development server is started.
|
||||
|
||||
The local `1.0.1.55-beta.1` slice begins the authored structure-set port with
|
||||
Villages, Mineshafts, and Strongholds. Saved page occurrences use the existing
|
||||
feature plan's new optional structure list. Terrain gates, random-spread
|
||||
frequency/spacing scaling, and bounded concentric-ring count/spread follow
|
||||
1.21.1. Modern `AbstractSpreadingStructurePlacement` accessors replace the old
|
||||
placement-class accessors. Scaled holder copies never mutate global registries.
|
||||
|
||||
Structure-state planning includes authored eligibility biomes while continuing
|
||||
to sample the actual terrain source. A scoped Structure mixin carries over
|
||||
1.21.1's authored biome override. The wrapper handles structure starts itself
|
||||
when a structure plan exists, allowing the hook to recognize the authored Age;
|
||||
unrelated/unplanned generators remain delegated. Only these three controlled
|
||||
families are gated in this slice; remaining structure families, random picks,
|
||||
and biome-mismatch instability remain unported. Existing plans without the
|
||||
optional list retain their previous structure path. Mod metadata now correctly
|
||||
calls this target Beta rather than Alpha.
|
||||
|
||||
The player passed Star Fissures. Build/static checks pass for this new slice.
|
||||
A disposable dedicated-server startup reached `Done` without mixin-loading
|
||||
errors. Its console `/stop` command hit a null-level CommandSourceStack error;
|
||||
the exact test JVM was then stopped through SIGTERM and saved/shut down. This
|
||||
was a startup check, not authored generation or density validation. The
|
||||
disposable world is removed; client authoring, actual structures, density,
|
||||
biome overrides, and restart checks are handed to the player.
|
||||
|
||||
The local `1.0.1.56-beta.1` follow-up corrects the structure biome override.
|
||||
Client logs confirmed the build-55 mixin was applied, but 26.3 JigsawPlacement
|
||||
checks `GenerationContext.couldStructureExistInColumn` inside generation,
|
||||
before the final check bypassed by the 1.21.1 hook. The replacement ModifyArg
|
||||
changes only the biome predicate passed to the GenerationContext constructor
|
||||
in Structure.generate for explicitly authored Age structures. Both early
|
||||
and final checks now see the override; all other generation constraints and
|
||||
unrelated generators retain their existing behavior.
|
||||
|
||||
Build/static checks pass. An isolated `--initSettings` bootstrap initialized
|
||||
settings without a mixin application error, then FML exited nonzero because
|
||||
that settings-only mode creates no server thread. This is not a full server
|
||||
or generation pass. No world was created, and the temporary settings directory
|
||||
is removed. In-game validation requires a new Age or ungenerated chunks;
|
||||
previously rejected chunks are not regenerated. No commit/release is made.
|
||||
|
||||
The local `1.0.1.57-beta.1` slice completes the existing 1.21.1 structure-page
|
||||
mapping (Dungeons remains its separate placed feature) and enables 26.3's
|
||||
Abandoned Camps page. The shared planner now recognizes 15 structure sets.
|
||||
Page/terrain restrictions match AgeStructureSelection for the 1.21.1 families;
|
||||
Abandoned Camps follows surface noise terrain. No material modifiers are added.
|
||||
|
||||
The separate Fortress/Bastion set resources are reused directly from 1.21.1.
|
||||
The controlled-set gate includes the vanilla combined Nether set, preventing
|
||||
unrequested cross-family placement. All structure pages share the previously
|
||||
validated saved list, density logic, and corrected context-level biome override.
|
||||
Unknown non-spreading placements are left unchanged rather than cast unsafely.
|
||||
Unmodified/no-authored-structure Ages retain their prior native path; previously
|
||||
saved authored plans now gate all supported families in new chunks. Instability
|
||||
and random feature selection remain pending.
|
||||
|
||||
The player passed the build-56 biome fix. Build, diff checks, all 15 registry
|
||||
and Creative-page mappings, and target structure resource existence checks pass.
|
||||
Packaged Fortress/Bastion definitions match 1.21.1 byte-for-byte. No server is
|
||||
started; actual structure placement, terrain-specific limits, repeated density,
|
||||
and restart validation are handed to the player. Changes remain local.
|
||||
|
||||
The local `1.0.1.58-beta.1` slice ports Caves/Ravines feature pages separately
|
||||
from Cave terrain. A new optional saved carver-page list participates in the
|
||||
existing feature-plan lifecycle. Grammar accepts noise terrain including Cave,
|
||||
rejects Flat/Void and material modifiers, and checks the modern CARVER registry.
|
||||
|
||||
26.3 combines carving with terrain construction and exposes carvers that emit
|
||||
geometry rather than mutate blocks. A scoped NoiseBasedChunkGenerator mixin
|
||||
adds authored geometry to its native CarvingMask immediately before that mask
|
||||
is tested/applied. It only acts for the matching runtime Age wrapper, using
|
||||
its frozen seed and actual biome resolver. Vanilla applies the combined mask
|
||||
with its own aquifer/surface rules; no closed NoiseChunk is accessed afterward.
|
||||
The source range, salts, Nether cave selection, and Nether ravine skip match
|
||||
1.21.1. Duplicate Caves/Ravines repeat identical seeds in the baseline, so the
|
||||
port avoids redundant identical mask passes while retaining authored pages.
|
||||
Added terrain volumes still follow the combined terrain operation, as noted
|
||||
for the earlier Floating Islands port.
|
||||
|
||||
The player passed structure slice 57. Build/static checks and packaging checks
|
||||
for the hook, Creative entries, and three required vanilla carvers pass. A
|
||||
settings-only bootstrap completed initialization without a mixin application
|
||||
error; FML then returned nonzero because no server thread exists in that mode.
|
||||
This is not world-generation validation. No world was created; the temporary
|
||||
settings directory is removed. Actual carving and restart checks are manual,
|
||||
and no commit/push/publication is performed.
|
||||
|
||||
The local `1.0.1.59-beta.1` slice replaces stale per-page port information
|
||||
and adds the requested red hue for unsupported pages. A shared
|
||||
PortAuthoredWriting.isPageImplemented classifier uses the same terrain,
|
||||
controller, material/biome, and feature recognizers as the grammar, without
|
||||
misclassifying context-dependent modifiers/controllers by testing them alone.
|
||||
Page tooltips, the extracted item-render color, and the Binder background use
|
||||
this single availability check. Tinting does not generate extra textures or
|
||||
change stored page data. Corrupted-page names/descriptions remain obfuscated.
|
||||
|
||||
Port language overrides remove the old Standard/one-Biome claim, distinguish
|
||||
implemented/unimplemented pages and invalid combinations, and correct all
|
||||
15 structure-family descriptions, material adjacency, and selected terrain/
|
||||
feature restrictions. The 1.21.1 language assets are unchanged. This is a UI
|
||||
and information slice, not new generation functionality.
|
||||
|
||||
The player passed Caves/Ravines. Build, diff checks, unique language-key checks,
|
||||
and packaged-language override checks pass. No server/world is started.
|
||||
Inventory tint, Binder tint/layering, and tooltip readability await the
|
||||
player's visual check. Changes remain local and unpublished.
|
||||
|
||||
The local `1.0.1.60-beta.1` slice implements the four requested 26.3-only
|
||||
vegetation pages: Poplar Trees, Fallen Poplar Trees, Red Shrubs, and Shelf
|
||||
Mushrooms. They extend PortVegetationPlan recognition, so grammar, saved plans,
|
||||
Creative status, item tint, and tooltip availability agree without another
|
||||
page list. The existing ordered vegetation cap and surface-terrain/biome
|
||||
restrictions are retained. The 1.21.1 code/assets are unchanged.
|
||||
|
||||
Poplar Trees selects only the three vanilla poplar variants, retaining their
|
||||
relative native weights and six placement attempts. Fallen poplars reuse the
|
||||
vanilla feature but add authored in-square/surface placement before its sapling
|
||||
check; the vanilla placed feature alone has no surface-height placement. Red
|
||||
Shrubs directly reuses its registered patch. No tree/shrub algorithm or artwork
|
||||
is duplicated.
|
||||
|
||||
Shelf Mushrooms is a tree decorator in 26.3, not a placed feature. The authored
|
||||
page therefore applies ShelfMushroomDecorator to existing connected log hosts
|
||||
at its position in the vegetation sequence. Section palettes skip log-free
|
||||
sections, repeated pages reuse the host scan, and tree placements invalidate
|
||||
that cache. Host ordering and page seeds are deterministic; callback writes
|
||||
are chunk-local, fluid-free, supported, and height-bounded. The decorator keeps
|
||||
its native standing/fallen logic and side/age/adjacency checks. This is an
|
||||
authored extension using the native decorator, not a new vanilla feature ID.
|
||||
|
||||
Build/static and resource-reference checks pass. The four pages' descriptions
|
||||
explain their actual effects and requirements. No server/world is started;
|
||||
the player validates vegetation appearance, support/tint, ordering, and restart.
|
||||
Changes remain local and unpublished.
|
||||
|
||||
The local `1.0.1.61-beta.1` follow-up separates log-hosted Shelf Mushrooms
|
||||
from surface plants. A shared requiresSurface classification now governs
|
||||
terrain/explicit-biome validation; decoration handles Shelf Mushrooms before
|
||||
the surface-biome skip. Trees, shrubs, and flowers retain their restrictions.
|
||||
Void/Cave/End-biome log hosts are no longer excluded by the vegetation path.
|
||||
|
||||
The host scan is a stable log-position list rather than connected tree groups.
|
||||
Native tree decorators assume a meaningful base and only decorate a limited
|
||||
height band, which is unsuitable for log tendrils. The authored extension
|
||||
therefore checks exposed log faces at all heights, reusing the native decorator's
|
||||
replaceability/water predicate and block facing/age/survival rules, with spacing
|
||||
and chunk bounds. Cached scans still avoid repeated full-volume work. No tree
|
||||
page or log-producing page is required, but actual log hosts must exist during
|
||||
chunk generation. This supersedes slice 60's whole-tree height-band behavior.
|
||||
|
||||
Build/static checks pass. Manual validation: new Void + Oak Log + Tendrils +
|
||||
Shelf Mushrooms Age, without any tree page; inspect exposed log faces and
|
||||
restart/new-chunk generation. No server is started and nothing is published.
|
||||
|
||||
The player passed the local `1.0.1.62-beta.1` sound slice: the complete 1.21.1
|
||||
sound manifest/OGGs are reused, book travel emits modifier-selected audio and
|
||||
cloud bursts, and Star Fissures play audio after arrival as well as departure.
|
||||
Portal/meteor events are registered but their gameplay ports remain separate.
|
||||
|
||||
The local `1.0.1.63-beta.1` slice adds authored Normal/Fast/Slow/Off/Always/Storm
|
||||
weather policies. One policy is accepted per book, with availability/tint and
|
||||
tooltips following the shared classifier. Cave terrain always suppresses it.
|
||||
An omitted policy defaults to Normal for now; random-trait selection is pending.
|
||||
|
||||
Unlike 1.21.1, 26.3 ServerLevel.getWeatherData delegates to the server's shared
|
||||
weather object. A scoped Runtime Age ServerLevel subclass instead loads native
|
||||
WeatherData from that Age's data storage, alongside its saved policy. Native
|
||||
weather ticking and client packets remain in charge; only the data owner and
|
||||
Legacy-style duration policy change. The constructor replaces inherited global
|
||||
rain/thunder visual levels before publishing the level. Retirement, reseeding,
|
||||
reload and restart retain the policy through existing per-Age storage lifecycle.
|
||||
Vanilla /weather remains a global server command; the Age policy is not a
|
||||
global command override. Native biome precipitation rules still apply.
|
||||
|
||||
Build/diff checks pass. A disposable dedicated server created all six weather
|
||||
policies: every Age reported independent native data and the expected flags/
|
||||
duration ranges. Setting global thunder left the Off Age clear. Unload/reload
|
||||
retained Storm, and a full stop/restart restored all six policies and their
|
||||
live timers. Both servers shut down cleanly; the temporary test world is
|
||||
deleted after completion. Client appearance, cross-Age travel, authoring/tint,
|
||||
and Cave suppression remain manual checks.
|
||||
No commit/push/publication is authorized by the player's testing pass alone.
|
||||
|
||||
The local `1.0.1.64-beta.1` follow-up fixes weather-only authoring. Build 63's
|
||||
server weather checks bypassed the Binder's biome compiler, whose exclusion
|
||||
list did not yet include weather. As a result weather/storm was incorrectly
|
||||
resolved as a biome ID despite grammar acceptance. The biome compiler now
|
||||
selects actual biome-category entries after full-book grammar validation;
|
||||
controllers retain their separate handling. This avoids repeating the same
|
||||
missed-exclusion bug as more non-biome page families are ported. The operator
|
||||
weather fixture now calls that compiler before backend creation. All six
|
||||
weather-only symbol lists compiled and created their expected weather states
|
||||
on a fresh dedicated server. Build/diff checks pass. The server shut down
|
||||
cleanly and its disposable world was removed; player GUI validation remains.
|
||||
|
||||
The local `1.0.1.65-beta.1` spawn correction traces non-Cave arrival columns
|
||||
from maximum build height, inspecting actual fully generated chunk blocks.
|
||||
The configured Flat-layer shortcut could select ground below later authored
|
||||
terrain, and the old heightmap-only path did not explicitly ensure an exposed
|
||||
surface. The new path stops at the first fluid/leaves/collision, requires dry
|
||||
footing and headroom, and otherwise tries the next column rather than searching
|
||||
below an obstruction. Chunk lookup is cached per column and a mutable position
|
||||
avoids per-air-block allocations. A fallback platform goes above the actual
|
||||
highest obstruction; empty Void retains floor Y=63. Surface footing accepts
|
||||
leaves, rejects fluid-bearing floors, and checks build/border bounds.
|
||||
|
||||
Stored non-Cave Star Fissure arrivals also use the surface search rather than
|
||||
accepting old underground pockets. Cave terrain keeps its Y=64-down search.
|
||||
Exact bound Linking Books and the general fissure Overworld-return anchor
|
||||
search are not redirected to the sky. A read-only surface probe command helps
|
||||
validate the chosen column/nearby surface (chunk generation is possible).
|
||||
Build/diff checks pass. A disposable dedicated-server probe selected Y=4 on
|
||||
plain Flat ground, Y=141 above leaves placed at Y=140, and a neighboring dry
|
||||
column instead of descending below water added above those leaves. A larger
|
||||
roof-fixture fill was rejected by vanilla because some target chunks were not
|
||||
loaded; that fixture is not claimed as tested. The server shut down cleanly,
|
||||
and its temporary world was deleted. Actual player arrival in the affected
|
||||
Age and the unchanged Cave/Linking Book paths remain manual checks.
|
||||
|
||||
## Verification of this first slice
|
||||
|
||||
The 1.21.1 `compileJava` and `build` tasks passed offline after the backend
|
||||
|
||||
Reference in new issue
Block a user