Public Access
Port live instability, writing recovery and Link Modifier controls to 26.3
Build / build (push) Waiting to run
Build / build (push) Waiting to run
This commit is contained in:
1 parent
d2904eaa8d
commit
32c52e635f
41 files changed
+2611
-77
No files matched your search
+392
-3
@@ -9,9 +9,11 @@ biome-distribution pages, selected material/vegetation/structure features, and
|
||||
independent Age weather and lighting, multiple authored or seeded celestial
|
||||
bodies and eclipses, biome/material completion, and random features/structures.
|
||||
Crystal portals and libraries are ported. Instability scoring/provider selection,
|
||||
status effects and colored decay are partially ported; remaining hazards, live material profiling,
|
||||
remaining discovery/stations, writing recovery and optional integrations remain unfinished. The latest published beta is
|
||||
[1.0.1.120-beta.1](RELEASE_NOTES_1.0.1.120-beta.1.md).
|
||||
status effects, colored decay, lightning, explosions, meteors, burning and erosion,
|
||||
ordered writing recovery, live material profiling and all six Link Modifier controls are now ported.
|
||||
Link Modifier seed editing/retirement, remaining discovery/configuration and optional
|
||||
integrations remain unfinished. The latest published beta is
|
||||
[1.0.1.129-beta.1](RELEASE_NOTES_1.0.1.129-beta.1.md).
|
||||
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.
|
||||
|
||||
@@ -2142,3 +2144,390 @@ No permanent test fixtures, commit, push or publication.
|
||||
The player passed every slice, including .120 colored decay, and authorized commit,
|
||||
push and publication as 1.0.1.120-beta.1. Both Minecraft targets build successfully.
|
||||
See the consolidated release notes for the published scope and remaining parity gaps.
|
||||
|
||||
|
||||
## Beta .121 — lightning and explosions
|
||||
|
||||
The player passed .120. This slice ports the 1.21.1 lightning/explosion providers,
|
||||
their separate scheduling lane, persisted per-Age attempt sequence/cooldowns,
|
||||
loaded-chunk candidate selection and existing damage/protection settings.
|
||||
|
||||
Each selected hazard receives a roll on each admitted Age scheduler pass, independent
|
||||
of rotating potion/decay providers. Legacy per-chunk/per-tick odds are aggregated as
|
||||
`1 - (1 - 1/denominator)^(loadedChunks * interval * effectiveCopies)`. Denominators
|
||||
remain 100,000 for clear-weather lightning, 5,000 during rain plus thunder, and 1,000
|
||||
for explosions. Candidate chunks are already-loaded rings around Age players, capped
|
||||
at 81 by default; no chunks are generated for hazards. Lightning uses the motion-blocking
|
||||
surface; natural explosions choose a random Y across the dimension's modern height.
|
||||
|
||||
Defaults match 1.21.1: hazards/block damage/player damage/fire enabled, 20-tick minimum
|
||||
gap per hazard type, strength-3 blasts, at most 16 distinct destructible blocks and
|
||||
eight damaged entities, and at most 12 damage per entity (lightning itself caps at 5).
|
||||
Creative/Spectator are excluded. Spawn columns within eight blocks horizontally are
|
||||
excluded as targets; protected infrastructure, block entities, TNT, portals and
|
||||
unbreakable blocks resist blasts. Break and placement cancellation checks remain.
|
||||
World mutation and mobGriefing gate block damage; entity damage and visual/audio
|
||||
feedback can remain active when block mutation is disabled.
|
||||
|
||||
The modern API no longer returns an explosion/block list. The damage calculator
|
||||
retains its bounded approved positions for post-blast ignition, only where the block
|
||||
is now air and fire placement is allowed. Cancelled explosion startup does not count
|
||||
as dispatch or generate follow-up fire. NeoForge's renamed BreakBlockEvent and 26.3's
|
||||
`canSpreadFireAround` replace the old break event and doFireTick query respectively.
|
||||
Vanilla explosion networking and lightning entities provide existing visuals/sounds.
|
||||
The `instability_hazards` config section retains the 1.21.1 setting names/defaults.
|
||||
|
||||
Operator checks inside an Age:
|
||||
|
||||
- `/rivencraft_port instability hazard lightning`
|
||||
- `/rivencraft_port instability hazard explosions`
|
||||
|
||||
These skip random probability only, retaining loaded-chunk, cooldown, Age/config/provider
|
||||
and protected-spawn checks. They target a nearby loaded chunk center, using its surface
|
||||
for lightning and the command's Y for explosions, rather than the player's exact feet.
|
||||
Move away from the arrival area and allow at least one second between repeats of the
|
||||
same hazard. The command reports no dispatch when blocked/cancelled. It also works with
|
||||
an explicitly positioned console source. Generic `pulse lightning`/`pulse explosions`
|
||||
retain their natural probability roll; `test_score`/`status` exercise normal selection.
|
||||
The saved score/plan and catalog protocol are unchanged.
|
||||
|
||||
Build and dedicated-server startup passed. The user offered to validate damage and
|
||||
block destruction manually, so the server was stopped before effect/terrain fixtures
|
||||
were run and its temporary world was removed. Manual checks include lightning/thunder,
|
||||
explosion visuals/sound, damage caps and Creative immunity, block/protected-block limits,
|
||||
spawn exclusion, world-mutation/mobGriefing/fire settings, cooldown/restart persistence,
|
||||
and natural rates in occupied Ages. No permanent tests, commit, push or publication.
|
||||
|
||||
|
||||
## Beta .122 — meteor flight and impacts
|
||||
|
||||
The player passed .121 lightning/explosion testing. Meteors now reuse the 1.21.1
|
||||
particle descent, roar sound, selected Legacy provider card, independent scheduling
|
||||
lane and bounded blast helper. They are not a new falling-block/entity model: a
|
||||
flame/smoke trail descends for 30 ticks (1.5 seconds) from up to 48 blocks above a
|
||||
captured surface target, followed by the impact. The existing meteor roar is bundled.
|
||||
|
||||
Natural scheduling aggregates the Legacy 1-in-50,000 per-chunk/per-tick odds across
|
||||
loaded chunks, scheduler interval and effective card copies, as in 1.21.1. Targets
|
||||
are randomized among already-loaded nearby candidate chunks; X/Z vary within the
|
||||
safe central area of each chunk. Up to 16 candidate chunks are considered per
|
||||
schedule attempt. Target selection rejects protected spawn columns and surfaces
|
||||
without headroom. No terrain is loaded or generated by the provider.
|
||||
|
||||
The shared hazard SavedData preserves the meteor cooldown (200 game ticks) and random
|
||||
attempt sequence. At most one meteor can descend per Age and 16 Ages can have active
|
||||
flights. A pending descent is session-only: server stop, Age unload, no players,
|
||||
unloaded target chunk, or disabled Age/global/provider/meteor policy cancels it.
|
||||
Interrupted flights never replay after restart; the saved cooldown remains. The
|
||||
flight is removed before impact dispatch so a failed impact cannot repeat.
|
||||
|
||||
The independent `[instability_meteor]` settings match 1.21.1: enabled/block damage/
|
||||
player damage/fire default true, maximum 24 impact blocks, eight damaged entities,
|
||||
and 12 damage per entity, strength 3. Impact reuses protected block/BE/infrastructure,
|
||||
claim events, Creative/Spectator immunity, world-mutation/mobGriefing and modern fire
|
||||
permission checks. Disabling block mutation still permits descent, sound and eligible
|
||||
entity damage. Generic instability status reports meteor availability separately
|
||||
from potion policy; saved scores/decks and catalog protocol are unchanged.
|
||||
|
||||
Test inside an Age, away from its arrival area:
|
||||
|
||||
`/rivencraft_port instability meteor`
|
||||
|
||||
This skips the natural probability roll, retaining cooldown, loaded target, active
|
||||
flight and all policy checks. It uses randomized nearby impact locations, unlike
|
||||
the deliberately fixed chunk-center lightning/explosion test commands. Wait at
|
||||
least ten seconds before repeating. `/rivencraft_port instability pulse meteors`
|
||||
keeps the natural chance roll; test-score/status tools exercise saved deck selection.
|
||||
|
||||
The build passed and JAR sound/class packaging was verified. Following the player's
|
||||
manual validation preference, particle/audio presentation, impacts/damage/protection,
|
||||
repeat cooldown, disabling/leaving during flight and restart cancellation are handed
|
||||
over for in-game testing. No server or new world was launched for this slice. No new
|
||||
permanent tests, commit, push or publication.
|
||||
|
||||
|
||||
## Beta .123 — burning and erosion
|
||||
|
||||
The player passed .122 meteor testing. This slice adapts the remaining burning and
|
||||
erosion portions of 1.21.1 AgeEnvironmentalProviders, using the existing hazard
|
||||
candidate selection, saved attempt sequence, protection helpers and independent
|
||||
provider scheduling. No new textures, entities, sounds or optional mods are required.
|
||||
|
||||
Burning remains an active Legacy deck card. Sky-exposed eligible living entities
|
||||
outside protected spawn can ignite; Survival/Adventure players are included by
|
||||
default and Creative/Spectator are excluded. Natural processing inspects at most
|
||||
eight loaded chunks/eight eligible candidates per chunk, ignites at most one per
|
||||
inspected chunk and four entities per pass by default. The old 1-in-10 per-tick gate
|
||||
is aggregated over the scheduler interval. Fire lasts four seconds per effective
|
||||
provider level, capped at twelve. Vanilla water/rain extinguishing and fire immunity
|
||||
remain in force. Disabling the provider stops new ignitions; existing fire follows
|
||||
vanilla behavior rather than the potion lease cleanup mechanism.
|
||||
|
||||
Erosion remains outside Legacy's saved card deck. As requested for testing in 1.21.1,
|
||||
its config defaults enabled and natural attempts run in admitted occupied Ages at a
|
||||
current score of at least 10,000. Current score uses the frozen creation total or an
|
||||
explicit session test-score override; live material profiling remains pending.
|
||||
At most eight random positions are sampled in already-loaded candidate chunks per
|
||||
pass, with at most one conversion. An eligible block next to a source fluid above or
|
||||
on a horizontal side is replaced with that fluid's source block; fluid below does
|
||||
not grow upward. Normal fluid ticks can subsequently spread it.
|
||||
|
||||
Erosion requires world_mutation and mobGriefing, and reuses decay's protection against
|
||||
spawn/infrastructure, block entities, fluids, critical/unbreakable blocks and protected
|
||||
tags. Modern break/place claim events and rollback remain. Its `instability_erosion`
|
||||
enabled toggle does not add a new saved card or alter the Age score. Burning uses
|
||||
`instability_scorching`: enabled/affect_players default true and max_targets_per_pass
|
||||
is 4 (range 0–16), matching 1.21.1.
|
||||
|
||||
Operator manual checks inside an Age:
|
||||
|
||||
- On dry ground under open sky, outside arrival protection and in Survival, run
|
||||
`/rivencraft_port instability environment burning`. It targets the player directly
|
||||
for four seconds, skips the chance roll, and explicitly reports water/rain that
|
||||
would immediately extinguish the fire.
|
||||
- Place ordinary Stone beside or below source water/lava, outside protected arrival.
|
||||
Use `/rivencraft_port instability test_score 10000`, look at the Stone within six
|
||||
blocks, and run `/rivencraft_port instability environment erosion`. The aimed
|
||||
block should become that adjacent source fluid. Existing policies still apply.
|
||||
End with `/rivencraft_port instability clear_test_score` to restore the saved plan.
|
||||
- Automatic burning needs a selected burning card; natural erosion uses the enabled
|
||||
test policy/threshold. `status` exposes both config/threshold information when
|
||||
inspecting the respective provider, without adding scores to ordinary books.
|
||||
|
||||
Build passed. The player is performing visual/effect testing, so no server/world or
|
||||
new permanent fixtures were created. Manual validation covers burning/fire damage,
|
||||
Creative/shelter/spawn exclusion, wet extinguishing feedback, source-fluid conversion,
|
||||
protected blocks, mobGriefing/world-mutation/config switches and natural scheduling.
|
||||
No commit, push or publication. Crumble, full writing recovery and live abundance
|
||||
profiling remain major instability work.
|
||||
|
||||
|
||||
## Beta .124 — live material-abundance instability
|
||||
|
||||
The player passed .123. This slice ports 1.21.1's Legacy-style generated-block
|
||||
profiling and live effective provider selection. Crumble remains a catalog entry
|
||||
without a registered handler in 1.21.1; no new Crumble behavior is invented here.
|
||||
|
||||
Overworld and runtime-Age chunk loads enqueue bounded sampling work, rather than
|
||||
accessing SavedData during chunk-storage callbacks. Four snapshots are processed
|
||||
per server tick, with a queue cap of 2,048. Paletted section counts record watched
|
||||
block IDs efficiently. Each chunk is sampled once, up to 1,024 per dimension, and
|
||||
samples/totals persist in per-dimension `rivencraft/block_profile` SavedData. Subsequent
|
||||
player edits or chunk reloads do not replace or double-count a stored snapshot.
|
||||
|
||||
Live points remain zero until at least **401 Age samples and 500 Overworld baseline
|
||||
samples** exist, matching 1.21.1. For each watched material, positive excess blocks
|
||||
per Age chunk above 1.05 times the Overworld average are multiplied by that material's
|
||||
weight. The total rounds to an integer and caps at 100,000. The watched list retains
|
||||
Legacy ores/quartz/glowstone/crystal and the existing modern/storage extensions,
|
||||
including Diamond Blocks, Ancient Debris and Netherite Blocks.
|
||||
|
||||
Recognized ores, mineral storage blocks and source-fluid block types from installed
|
||||
mods participate automatically via current NeoForge common tags, names and the same
|
||||
full-block/fluid material eligibility used for Pages. No content mod/API is required.
|
||||
Unknown ore/storage forms use the 1.21.1 fallback weights; known minerals retain its
|
||||
named weights. `[instability_modded_materials] block_weight_overrides` accepts exact
|
||||
`modid:block_id=points` entries, including zero to exclude a modded block. This is
|
||||
installation-based optional support, not a required mod or per-mod opt-in switch.
|
||||
|
||||
While a profiling-enabled Age is occupied, missing spawn-area samples are requested
|
||||
gradually: at most one chunk request per second, one in flight across the server,
|
||||
round-robin between active Ages and the Overworld baseline. Existing samples are
|
||||
skipped. The modern getChunkFuture API still blocks when invoked on the server
|
||||
thread, so requests use its off-thread scheduling path and completion returns to
|
||||
the server thread. Closed levels and stopped-server callbacks are discarded. No
|
||||
permanent force-load tickets or generation while no Age is occupied are introduced.
|
||||
Natural exploration also fills the sample pool and can reach readiness sooner.
|
||||
|
||||
Writing contributions and the original saved provider plan remain frozen. The live
|
||||
score is added only at runtime, and the effective deck is reselected deterministically
|
||||
from the same saved seed as the total changes. Providers can therefore appear or
|
||||
change as abundance is measured. Unchanged totals/seeds reuse a cached plan rather
|
||||
than reshuffling on each query. Older Ages predating instability records remain
|
||||
neutral; saved neutral arrivals/enable flags do not opt them into new scoring.
|
||||
|
||||
`[instability] difficulty` matches 1.21.1: 0=quarter, 1=half, 2=normal (default),
|
||||
3=1.75x. It scales writing plus live points without rewriting saved contributions.
|
||||
A session `test_score` remains an explicit final-score override and is cleared on
|
||||
restart; clearing it now restores the live effective plan. Erosion threshold checks
|
||||
use this same effective score.
|
||||
|
||||
Use `/rivencraft_port instability status` inside an Age to inspect frozen/live/effective
|
||||
scores, difficulty, profile eligibility and both sample counts. Normal book/Binder
|
||||
screens receive no score/profiler data. Zero live points before both thresholds are
|
||||
ready are expected. To validate, create/explore an Age with Diamond Block Rocks or
|
||||
another abundant watched material, watch progress, then confirm live points and
|
||||
providers change while the frozen writing contribution remains unchanged. Reopen the
|
||||
world to check sample persistence; repeated reloads should not duplicate counts.
|
||||
|
||||
Build and temporary dedicated-server checks passed. Real loaded snapshots saved 25
|
||||
samples per test dimension and captured one deliberately placed fixture Diamond Block.
|
||||
A restart with synthetic profile records exercised scoring/decoding without generating
|
||||
hundreds of chunks: resumed real chunk samples produced 423 Age and 522 baseline
|
||||
samples, with the expected 2,987 live points, frozen score zero and effective providers.
|
||||
Clearing a session override restored the same live result. This verifies save/scoring
|
||||
plumbing, not natural bulk generation. The player will check background progress,
|
||||
actual generated material distribution, modded recognition and difficulty/config
|
||||
changes. Test server stopped/world deleted; no permanent tests, commit or publication.
|
||||
|
||||
|
||||
## .125 ordered controller recovery
|
||||
|
||||
The player passed .124. New authored Ages now recover repeated singular terrain,
|
||||
biome-distribution, weather, lighting and sky choices: the last choice wins, with
|
||||
500 instability per duplicate or conflict. Supported category-order mistakes add
|
||||
100 points instead of blocking binding. Native distribution discards authored
|
||||
biome choices with a 500-point conflict; Single retains the first authored biome
|
||||
with a 500-point conflict when extras exist. These diagnostics use the 1.21.1
|
||||
writing rules. Season pages remain unsupported until their integration is ported.
|
||||
|
||||
The original pages remain in the book and library source list. Generation receives
|
||||
recovered choices without rearranging material/feature or per-celestial modifier
|
||||
chains. Existing Ages are not rescored. OP instability status shows the writing
|
||||
contributions; normal book/Binder screens do not expose the score or new warnings.
|
||||
Unknown/unported pages and other unsupported combinations still prevent binding.
|
||||
Celestial, number and dangling-modifier recovery is a later slice: their existing
|
||||
validation still applies to the original page sequence, before controller recovery.
|
||||
|
||||
Version 1.0.1.125-beta.1 builds. Thirteen temporary focused checks passed for
|
||||
last-choice selection, duplicate/conflict/order costs, Native/Single recovery,
|
||||
unimplemented pages, raw numeric guards, celestial-chain preservation, intentional
|
||||
feature repeats and Ambient Color ordering. No server/world was launched. In-game
|
||||
validation: bind books with conflicting terrain/weather choices and confirm the
|
||||
last choice takes effect; test Native with biome pages and Single with two biomes;
|
||||
check that all original pages remain and OP status reports the writing costs.
|
||||
No commit, push or publication.
|
||||
|
||||
|
||||
## .126 ordered celestial and number recovery
|
||||
|
||||
The player passed .125. Ported the 1.21.1 grammar treatment of pending celestial
|
||||
modifiers and numeric adjacency. Repeated Length/Phase/Angle/Size/Direction pages
|
||||
before a celestial use the final value of that kind without a duplicate penalty.
|
||||
Only the final unconsumed modifier of each kind adds 100 dangling-modifier points.
|
||||
A number without an immediately following supported Color/Length/Phase/Angle/Size
|
||||
page adds 100 points (misplaced, or dangling at the end). Consecutive numbers leave
|
||||
only the last available for the next target. Colors still mix in written order.
|
||||
|
||||
These defects no longer block binding. Numbers and celestial compilation retain
|
||||
the original page sequence and seeded color indices; controller recovery never
|
||||
moves a number next to a new target. A trailing modifier cannot rewrite an earlier
|
||||
body, including the optimized single-body compilation path. Missing celestial
|
||||
branches retain their existing seeded completion; dangling controls do not apply
|
||||
to those generated bodies. All original book/library pages remain. Unsupported
|
||||
pages and the ten-sun/ten-moon limit still block binding; existing Ages are unchanged.
|
||||
|
||||
Version 1.0.1.126-beta.1 builds. Seventeen temporary focused checks passed, covering
|
||||
last-value selection, dangling costs/indices, numeric adjacency, per-body isolation,
|
||||
seeded color stability, valid numbered writing, body limits, unsupported pages and
|
||||
cycle codec round-trip. No server/world or permanent test fixture was created.
|
||||
Manual validation: bind a book with Half Length, Double Length, Sun and verify the
|
||||
last length; bind Sun followed by Large Size and confirm it does not resize that
|
||||
sun. Test a trailing Number page and inspect the added writing contribution with
|
||||
`/rivencraft_port instability status`. Original pages should remain visible.
|
||||
No commit, push or publication.
|
||||
|
||||
|
||||
## .127 Link Modifier station: title and core link properties
|
||||
|
||||
The player passed .126. Started the missing 1.21.1 Link Modifier station port,
|
||||
reusing its block model, textures, horizontal facing variants and Legacy 176x166
|
||||
single-book GUI. The item is available in the main creative tab or via
|
||||
`/give @s rivencraft:link_modifier`; it has no crafting recipe. As in 1.21.1,
|
||||
creative acquisition does not impose a new permission restriction on ordinary
|
||||
book edits once the station has been placed.
|
||||
|
||||
One persistent slot accepts Linking and Descriptive Books, including unbound
|
||||
books, with normal and shift-click transfers. The server menu handles renaming
|
||||
and Disarm, Maintain Momentum and Intra Linking toggles. Descriptive Books cannot
|
||||
toggle Intra Linking, which only governs same-dimension Linking Book travel.
|
||||
Existing target, author, symbols and Age identity are retained. Renaming changes
|
||||
the item's custom title, not the Age's saved folder/registry identity. Removing
|
||||
the title restores the item's normal name. Text editing consumes inventory/hotbar
|
||||
shortcuts while focused; Escape closes the screen. Programmatic text refreshes do
|
||||
not send rename packets. Menu identity, owner, distance and live station checks
|
||||
protect edits; unknown button IDs and non-book inputs are rejected.
|
||||
|
||||
The book is saved with modern ValueInput/ValueOutput container serialization.
|
||||
Station removal uses block-entity preRemoveSideEffects to release the stored book
|
||||
once, including non-player removal. No tick handler or renderer is needed.
|
||||
|
||||
This is a station slice, not full Link Modifier parity. Seed editing, Age retirement,
|
||||
Relative Link, Intra-Linking Only and platform overrides remain unported and are
|
||||
not presented as working controls. Existing core flag behavior is reused unchanged.
|
||||
Manual validation: place the station in multiple orientations, insert/shift-click
|
||||
both book types, rename using text containing E, toggle each available property,
|
||||
remove the book and use it to check travel effects. Confirm Descriptive Book Intra
|
||||
Linking is unavailable, restart with a book left in the station, and break a loaded
|
||||
station to recover one book. Build and dedicated persistence results are recorded
|
||||
below. No commit, push or publication.
|
||||
|
||||
Version 1.0.1.127-beta.1 builds. Packaged model, GUI, texture, item definition,
|
||||
loot table and localization checks passed; no station recipe is included. A
|
||||
fresh dedicated server placed the station and serialized a named Linking Book
|
||||
with all three core flags. Restart retained the same book/name/flags and station
|
||||
removal completed normally. The first harness run expected the wrong wording
|
||||
for vanilla force-load cleanup; the corrected harness completed successfully.
|
||||
Both temporary worlds were deleted and servers stopped. No permanent tests were
|
||||
added. UI interaction, transfer counts and modifier travel effects await the
|
||||
player's in-game check.
|
||||
|
||||
|
||||
## .128 six Link Modifier controls
|
||||
|
||||
The player reported that .127 exposed only three of 1.21.1's six controls. Added
|
||||
the remaining Intra-Linking Only, Relative Link and Generate Platform controls in
|
||||
the existing two-column, three-row Legacy layout, with matching bit values and
|
||||
server-owned menu actions. Enabling Intra-Linking Only enables Intra Linking too;
|
||||
disabling Intra Linking clears Intra-Linking Only. Both intra controls are disabled
|
||||
for Descriptive Books. Unknown actions and out-of-range menu edits remain rejected.
|
||||
|
||||
Linking Book Intra-Linking Only blocks cross-dimension travel. Relative Link uses
|
||||
the traveller's block offset from the source world's spawn, applied to destination
|
||||
spawn, preserving destination yaw/pitch. Normal links retain their precise bound
|
||||
coordinates. Player and non-player portal travel share the new flags and relative
|
||||
coordinate helper. Descriptive relative arrivals still require proper footing.
|
||||
|
||||
Generate Platform is off by default for Linking Books. When enabled, a successful
|
||||
link fills one missing floor block with cloud platform only if the block two above
|
||||
the arrival is air, matching the 1.21.1 helper. Existing floors are retained.
|
||||
Descriptive Books instead default to enabled and use Disable Platform internally;
|
||||
turning it off prevents fallback platform creation and refuses travel if no footed
|
||||
landing is available. Receptacle tint preparation respects that setting too.
|
||||
New flags serialize in the shared component and appear in book/panel tooltips.
|
||||
Existing three-flag books remain valid. Seed editing and Age retirement remain
|
||||
separate, unfinished station work.
|
||||
|
||||
Version 1.0.1.128-beta.1 builds. A temporary dedicated-server fixture passed 19
|
||||
checks: menu actions/dependencies, descriptive intra rejection, numeric flag codec,
|
||||
relative offsets, platform-off/default behavior, platform placement/preservation,
|
||||
invalid input and remote edit protection. It did not perform real client travel.
|
||||
The test server stopped and its world/fixture sources were removed. The production
|
||||
JAR is rebuilt without that fixture. Manual checks: all six buttons and tooltips,
|
||||
same/cross-dimension Intra-Linking Only, Relative Link offsets, and platform on/off
|
||||
for both book types (including a new Void Age without footing). No commit, push
|
||||
or publication.
|
||||
|
||||
|
||||
## .129 Link Modifier mouse input repair
|
||||
|
||||
The player reported that none of the six controls responded. Confirmed the
|
||||
26.3 input constants in the local Minecraft artifact: left/middle/right are
|
||||
1/2/3, while the custom Link Modifier handler checked the old left-button value
|
||||
0. Its server actions therefore passed the prior direct-menu fixture while
|
||||
real mouse clicks never sent an action.
|
||||
|
||||
Replaced the manually drawn/clicked areas with six registered Minecraft Button
|
||||
widgets at the same Legacy positions. Their callbacks send the existing validated
|
||||
menu action IDs, and their custom rendering retains the square controls. Native
|
||||
input provides correct mouse mapping, focus, click sound and keyboard activation.
|
||||
All six tooltips expose their On/Off state; unavailable Descriptive Book intra
|
||||
controls remain disabled. Tooltip objects update only when state changes so their
|
||||
hover delay is not reset every tick. Book mutations/travel code is unchanged.
|
||||
|
||||
Version 1.0.1.129-beta.1 builds. The native widget's left-button mapping and callback
|
||||
dispatch were verified in the local Minecraft bytecode. No client click test or
|
||||
new server run was performed; the previous 19 checks covered server actions, not
|
||||
client input. Please click each option with an inserted Linking Book and verify
|
||||
its selected shading and tooltip/book properties change, then repeat supported
|
||||
options with a Descriptive Book. No commit, push or publication.
|
||||
Reference in new issue
Block a user