Files
eltanschauungandCodex 13d6b9fbaa Add optional minimap outline styles and coordinate display
Preserve upstream defaults and existing settings. Include the supplied screenshot, settings regression checks, and the native tool pins and split control-target support needed to validate this renderer integration.

Co-Authored-By: Codex <[email protected]>
2026-11-03 23:16:37 -05:00
..

Recipes (Horizon native mod)

Horizon's official recipe viewer: every item beside your inventory, with a search box (#tag searches a tag). R over an item shows its recipes, one tab per station; U shows its uses. The + under a crafting recipe you know fills the crafting grid, as the recipe book does. In creative mode, turn on "Click gives items" (Options > Mods > Recipes > Settings): a click on an item in the panel gives you one, a right click a stack. Change R and U on the mod's page in Options > Mods.

It is a horizon-mixins bundle (mixins/recipes/) that the Horizon launcher builds into the game. It keeps the settings of earlier versions: the same file (horizon-mods/.horizon-mod-data/recipes/give) and the same keys (key.recipes.recipe, key.recipes.uses in horizon-mods.txt).

Install

In the Horizon launcher: Mods → Recipes → Install, then Build on the same page (once built, switch it on or off in the game under Options → Mods). The launcher downloads its own Rust and builds the game with your native mods; see Horizon's native mods.

Made on the hook points

The bundle hooks only Horizon's native hook points (crates/horizon-client/src/game/native_hooks.rs), which keep their names and signatures across releases. It needs the item panel and the recipe tables, so compatibility.json names version 2 ("hooks": 2): the launcher builds Recipes on any Horizon with that version or a later one, the player's own game by default, together with any other mod. horizon_revision is only the commit it was last tested on.

File What it is
mixins/recipes/horizon-mixin.toml The bundle: two modules and the HEAD hooks
mixins/recipes/runtime.rs The viewer: search, pages per station, history, and its tests; added to the game as game::official_recipes, and this crate's library
mixins/recipes/glue.rs The viewer's edges in the game (game::official_recipes_glue): the game's tables and panel events in, the panel, give and place out
mixins/recipes/*.rs One small helper per hook
proof.py (with ../tools/game.py) The proof: the built game driven with horizon-ctl --offscreen on fresh, temporary data

Build and prove

(cd native/recipes && cargo test)                    # the viewer
python3 native/tools/native.py check recipes         # apply on the tested Horizon and cargo check the game
python3 native/tools/native.py check all             # with the other native mods, as a player's set
python3 native/tools/native.py package recipes       # native/target/recipes-<version>.hnmod for the registry
python3 native/tools/native.py proof recipes --resources /path/to/.local/horizon-client/26.3

The proof needs resources prepared from your own Minecraft 26.3 (horizon-prepare); none are in this repository. It seeds an earlier version's setting ("Click gives items" on) in a temporary game folder, checks that Options > Mods shows the mod, its keys and the setting, then opens the inventory: the panel shows items, a click on one in creative mode gives it, and with the setting turned off the same click opens its recipe page.

License: MIT.