Horizon no longer fetches anything of Minecraft from Mojang's servers. The
client jar, version JSON, libraries and assets come from the user's official
launcher install, and the server jar is one they downloaded themselves
(--server-jar or HORIZON_SERVER_JAR). Every file is checked against checksums
pinned in research-lock.json, and the prepared .local/ layout is byte-identical
to the old downloads, so the harnesses and the native client are unchanged.
CI keeps the offline checks on GitHub's runners; the vanilla comparisons and
the mod build need the game, so they move to a manual job on a self-hosted
runner that holds the maintainer's own copy.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Uncommitted changes the agent had in progress when it was stopped; may not
build or pass its harnesses yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mobs now run vanilla's tick order with a GoalSelector/target selector
(priorities, MOVE/LOOK/JUMP/TARGET flags), PathNavigation over the
walk/swim/fly/amphibious node evaluators, Move/Look/Jump/BodyRotation
controls and LivingEntity travel in air, water and lava. Path types,
spawn surfaces and keyframe animations come from a new exporter
(VanillaMobDataExporter -> mob-data.json). Farm animals, zombies,
skeletons, creepers and spiders get their vanilla goals; projectiles
(arrows, snowballs, eggs, ender pearls, fireballs) share one system;
natural spawning follows NaturalSpawner with category caps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 127 skipped placed features were all skipped because the worldgen bundle
lacked worldgen/blocks/{block-properties,cached-collision,cached-support}.nbt
and the survival definitions, which prepare_native_client.py only copied from
a previous simple-block parity run. Run the vanilla exporter directly when
those files are missing, and say so in the client when they are absent.
With them, every placed feature of the three dimensions runs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Port the creative screen's Escape and E handling into key_pressed, which
the control socket shares with the window, and keep both exporter hashes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Uncommitted work from a finished agent worktree on ludothinkpad (/home/ludovic/.t3/worktrees/2026-10-03-i-want-you-to-retro-e5fa4461/t3code-ec3c613c), saved before the worktree was removed. Not built or verified.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run the worldgen step after vanilla's data generator, which writes the
biome parameter tables it reads, and export entity-types.json with the
existing VanillaEntityTypesExporter. Without these, preparation failed and
the client exited with "No such file or directory" when loading mobs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Load gzip NBT structure templates lazily with vanilla palette ordering,
apply processors (rule, block_ignore, block_rot, gravity, protected_blocks,
capped, jigsaw_replacement, block_age, lava_submerged) and place them with
rotation/mirror, waterlogging and block-entity data (loot seeds). Per-state
rotate/mirror tables and template ordering flags come from a new vanilla
exporter. Template and fossil features now decode, so desert wells,
fossils and sulfur springs generate; their block entities are kept on the
ProtoChunk. The prepare script bundles templates, processor lists, pools,
structures and structure sets.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Behaviours loads per-block class chains, instance configuration and per-state
support/signal/fluid facts exported by VanillaBlockBehaviourExporter, and ports
Level.setBlock with the CollectingNeighborUpdater, updateShape for every
overriding class, canSurvive, FlowingFluid spreading with lava/water
interactions, gravity blocks, rails, tripwires, redstone wire/torches/diodes,
scheduled ticks and random ticks.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
GeneratorData loads a worldgen bundle (written by prepare_native_client.py
to the client resource dir) once; OverworldGenerator binds a seed and shares
compiled samplers across threads; GeneratorWorker generates vanilla
BIOMES..TERRAIN proto chunks (noise fill with aquifers, material surface,
carvers) that match the material-stage parity dumps. Decoration is stubbed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Model catalog now binds all registered blockstates. Sprites accept
fractional alpha, interpolated animations and non-16px frames
(resampled into the shared 16px array). Resource preparation extracts
every jar asset and data file, exports per-state light/hardness/sound
facts through a vanilla exporter, and bundles item default components
from vanilla's data generator reports.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>