Tweaks:
Synthetic favorites display raw amount needed, rather than batch count, to be less confusing.
Fixes:
Fixed regex tooltip errors;
Fixed lookups of favorited damaged tools being overly precise;
Fixed item bars not being rendered for items in recipes;
Fixed legacy recipe handler conversion behavior.
Updated to 1.19.4.
Tweaks:
Auto-resolving tags in the recipe tree now bases its decisions based on existing costs.
Fixes:
Fixed sidebars sometimes overlapping where they shouldn't below them;
Fixed craft history not having miscraft prevention;
Fixed remainder reuse ordering in cetain specific recipe tree structures.
Sidebars:
Sidebars have been completely redone;
Every sidebar can have its size, positioning, and theming options individually changed;
There are now 4 configurable sidebars, including two new top and bottom sidebars;
Top and bottom sidebars can be aligned to be above or below existin;g sidebars.
Config:
EMI's config system got a facelift, the UI should look nicer, and be much nicer to use;
Changes are displayed and can be easily reverted;
Config presets now exist to set a variety of settings at once to a preset option rather than navigating a lot of individual options.
Searching:
Increased search performance;
Added tag searching;
Added config options for searching tooltip/mod/tags without prefix.
Screenshots:
A button can be enabled to save clean screenshots of recipes at a specified scale.
Tweaks:
Moved to a proper EMI logger;
Unmoved status effects are now squished to not overlap a ton of EMI's sidebar;
Arrows in the recipe screen no longer shift around when changing tabs.
Fixes:
Batched rendering no longer breaks certain rendering conditions (#82);
#28.
API:
EmiDragDropHandlers can now render feedback;
Added EmiDragDropHandler.BoundsBased and EmiDragDropHandler.SlotBased, simple drag drop handlers with simple rendering;
Deprecated the EmiStack.Entry system. It was mostly duplication of existing systems, not often useful, and cleaner to eventually remove;
Deprecated usage of FluidVariant in API methods;
Added more convenience methods to Bounds, likely only useful internally;
Added alignment options to TextWidget.
Additions:
Added quick buttons for navigating the EMI config;
Added configurable subpanels for sidebars;
Added new sidebar types.
Craft History - A live updating history of the crafts you've performed;
Lookup History - A live updating history of the stacks you've looked at recipes for;
Added full support for chance in recipes and the recipe tree.
Tweaks:
Craftables now display their output count, to help disambiguate them.
Fixes:
Sidebar background should properly draw behind GUIs with overlaps;
Chance support, #104 #105.
API
Added convenience method for easier text widget construction;
Added sorting method for recipes based on identifier.
Additions
Added support for more non-standard crafting recipes, like those generated by CraftTweaker
Tweaks:
Tweaked the way EMI detects server connecton/disconnection;
Tweaked some EMI logging to include mod name outside of dev.
Fixes:
Fixed some "infinite reloading" bugs related to lifecycle events.
Additions:
Added an option for using a global config;
Added logical OR searching #122;
Added index stack hiding and organization data formats;
Added basic custom recipe data formats for info and world interaction;
Added a category property data format;
Added a search alias data format;
Added a recipe filter data format;
Added a favorited recipe icon;
Added config to entirely remove mod name tooltips;
Added config for recipe screen size and workstation location.
Tweaks:
Adjusted how recipes are sorted on usage lookup to show more specific results first;
Added Inventory Tabs compat with moved potion effects #94;
Adjusted textures for resource pack creators #96;
Changed how EMI handles input interaction to generally be more consistent;
EMI now reloads on resource reload;
Adjusted cost per batch to better take into account one time costs;
Properly display the sponge smelting recipe remainder;
The recipe tree screen is now batched, improving performance for significantly large recipe trees.
Fixes:
Reduced frequency of MC-258939 #126;
Fixed recipe filling strictness #100;
Added category prioritization #81;
Added configurable recipe viewer size #63;
Fixed keybinds failing in certain screens #32.
API:
Refactored recipe handlers;
Added search control endpoints.
Tweaks:
Updated Chinese translation;
Adjusted reload messages to be more clear if the server is not providing data;
Craftables now take into account the cursor stack, so moving items around shouldn't cause constant changing valid recipes;
Folded nodes in the recipe tree no longer ignore their base costs as it is generally more useful;
The recipe screen will now truncate recipe name and show the full name on hover instead of spilling outside of bounds;
Some tweaks were made to how EMI coerces ingredients to tags;
The recipe tree now has less superfluous padding, it should be easier to fit more on the screen at once;
Zooming in the recipe tree should be cleaner.
Fixes:
Fixed performance issues baking large sets of recipes, particularly in packs with large amounts of enchantments and gear;
Fixed fluid count display in synfavs;
The root node of the recipe tree can be properly reassigned;
Fixed some default config settings and config presets;
Fixed screenshot scale issues on auto GUI scale;
Auto resolution of recipes from ingredients should now always display the correct tooltip;
Minor stability and crash fixes.
Additions:
An info recipe category for assigning descriptions to items or groups of items;
A bind for clearing search, focused or not;
Proper Sodium compat for animated items;
Quick crafting no longer requires recipe context, it will attempt to infer based on inventory state. A new bind (shift by default) displays this inference;
A proper description of the recipe, including how to use it and the interactions;
Contextual assignment of recipes in the recipe tree, based on inventory, using shift left click;
Quick clearing of recipes in the recipe tree with shift right click;
Client-only recipe filling;
Synthetic favorites will now also display required materials instead of just crafting steps.
Fixed:
Rare sidebar crash #75;
Tweaks to how miscraft prevention functions #65;
Filling properly using different sources for the same ingredient #19;
Various improper interactions with synthetic favorites;
Recipe filling increments instead of completely replacing.
Fixes:
Fix incompatibility with other mods causing EMI to clear its sidebars;
Fix furnace recipe handler issue (#83);
Fix recipe handler filling issues (#80).
API:
EmiStackConvertible interface injections are no longer exposed due to Loom issues. They are still present at runtime and remain compatible with old mods that used them.
Additions:
EMI now supports a variety of niche vanilla recipes more thoroughly, like firework crafting, map operations, crafting grid repairing, and more.
#52 #53 (thanks jopejoe1!) fixing #48.
Fixes:
Fixed Debugify incompat by reimplementing vanilla systems to avoid it;
Scrolling now works correctly on certain mouses #41;
Effects no longer overlap with the recipe book #43;
EMI now respects stack size limitations for filling where vanilla does not #47;
Fixed tag based crashing #50 #51;
Fixed rendering of evil fluids;
Several other fixes without issue numbers.
Additions:
Added Mod Menu support;
Added batch size to recipe tree;
Added crafting mode for recipe trees;
Added synthetic favorites for use with crafting mode, quickly crafting batches, and not overcrafting;
Added experimental default recipe sorting for categories;
Recipe favorites now display missing items for a quick craft;
Recipe tree resolution can now be cleared, and is more telegraphed, informing the player how it functions.
Fixes:
Botania tooltip components and similar now show up in the right place for index tooltips;
Various stability fixes;
Cheat mode item deletion now respects exclusion zones (#23);
Button overlap (#34).
API:
Added EmiStackConvertible to vanilla types. EmiStack.of(Items.STONE, 10) and EmiStack.of(Fluids.WATER) can be replaced with Items.STONE.emi(10) and Fluids.WATER.emi() for a more convenient dev experience.
SlotWidget.custom has been deprecated and replaced with SlotWidget.customBackground as the former returned void instead of SlotWidget. Will be removed in the next breaking release.