Persistent paged recipe trees in EMI's inventory sidebar
- Java 100%
| fabric | ||
| forge | ||
| gradle/wrapper | ||
| xplat | ||
| .gitignore | ||
| AGENTS.md | ||
| build.gradle | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle | ||
EMI Sidebar Recipe Tree
An EMI addon that adds persistent, paged recipe trees to the inventory sidebar.
Features
- Multiple saved recipe-tree pages with duplicate, delete, previous, and next controls.
- Manually managed Favorites pages, each with its own item collection and support for the same item on different pages.
- A clipped canvas containing the dependency graph, total costs, and leftovers.
- Cursor-anchored zoom, canvas panning, fit-to-view, batch sizing, and crafting mode.
- Shared tree decisions between the sidebar and EMI's full-screen recipe tree, with independent viewports.
- Persistent goals, recipe resolutions, collapsed nodes, batches, modes, and view positions.
- Fabric and Forge support on Minecraft 1.20.1.
The addon uses EMI's Empty sidebar page internally because EMI does not expose custom sidebar registration. While the addon is installed, that page is presented and rendered as Recipe Tree.
Controls
- Plus above EMI's lower-left buttons while Favorites is open: create and select an empty Favorites page.
- Trash above EMI's lower-left buttons while Favorites is open: delete the selected page; the final page is cleared instead.
- Favorites header arrows: switch Favorites pages when multiple saved pages exist.
- Shift + mouse wheel over Favorites: switch Favorites pages; ordinary scrolling keeps navigating overflow items.
- Recipe screen View Tree: create and select a new tree page, then return to the inventory sidebar.
- Mouse wheel over canvas: switch pages.
- Ctrl + mouse wheel: zoom around the pointer.
- Left or middle drag on empty canvas: pan.
- Right-click recipe node: fold or unfold.
- Shift + right-click recipe node: clear its resolution.
- Shift + left-click ingredient: automatically resolve it.
- Mouse wheel over batch count: change batches; hold Shift for increments of 16.
Building
Use Java 17:
JAVA_HOME=/usr/lib/jvm/java-17-temurin-jdk ./gradlew build
Output jars are written to fabric/build/libs and forge/build/libs.
Development clients
JAVA_HOME=/usr/lib/jvm/java-17-temurin-jdk ./gradlew :fabric:runClient
JAVA_HOME=/usr/lib/jvm/java-17-temurin-jdk ./gradlew :forge:runClient
Both clients download and run against the published, unmodified EMI 1.1.24 jar.
Compatibility
The integration intentionally uses mixins into EMI implementation classes. Releases are therefore tied to the EMI versions stated by each branch.
1.20.1: Minecraft 1.20.1, Fabric and Forge, EMI 1.1.24.1.21.1: Minecraft 1.21.1, Fabric and NeoForge, EMI 1.1.24.
License
MIT