Skip to content

Commit

Permalink
work
Browse files Browse the repository at this point in the history
  • Loading branch information
ix0rai committed Oct 7, 2024
1 parent 61e2203 commit 80230c4
Show file tree
Hide file tree
Showing 13 changed files with 64 additions and 1 deletion.
3 changes: 3 additions & 0 deletions mappings/net/minecraft/recipe/AbstractCookingRecipe.mapping
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ CLASS net/minecraft/unmapped/C_hpjdwiwu net/minecraft/recipe/AbstractCookingReci
FIELD f_nmnwzbay cookTime I
FIELD f_sufvonzl category Lnet/minecraft/unmapped/C_gtxamkec;
METHOD m_colblqee getCategory ()Lnet/minecraft/unmapped/C_gtxamkec;
METHOD m_iedtbqqy getWorkstation ()Lnet/minecraft/unmapped/C_vorddnax;
METHOD m_sdqrhyci getCookTime ()I
METHOD m_tmbqodoo getExperience ()F
CLASS C_fpdfhqvq Factory
METHOD create (Ljava/lang/String;Lnet/minecraft/unmapped/C_gtxamkec;Lnet/minecraft/unmapped/C_tcpsydrv;Lnet/minecraft/unmapped/C_sddaxwyk;FI)Lnet/minecraft/unmapped/C_hpjdwiwu;
ARG 1 group
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ CLASS net/minecraft/unmapped/C_ilssplzn net/minecraft/recipe/BrewingRecipeRegist
ARG 3 output
METHOD m_omxvxkhk addStarterRecipes (Lnet/minecraft/unmapped/C_vorddnax;Lnet/minecraft/unmapped/C_cjzoxshv;)V
METHOD m_pdipybln addBottomIngredient (Lnet/minecraft/unmapped/C_vorddnax;)V
ARG 1 item
METHOD m_sieojnmp addPotionRecipe (Lnet/minecraft/unmapped/C_cjzoxshv;Lnet/minecraft/unmapped/C_vorddnax;Lnet/minecraft/unmapped/C_cjzoxshv;)V
ARG 1 bottomInput
ARG 2 topInput
Expand Down
2 changes: 2 additions & 0 deletions mappings/net/minecraft/recipe/CookingCategory.mapping
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
CLASS net/minecraft/unmapped/C_gtxamkec net/minecraft/recipe/CookingCategory
FIELD f_aobpgvfm CODEC Lcom/mojang/serialization/Codec;
FIELD f_ldjtjvax name Ljava/lang/String;
FIELD f_lvvhcvlc BY_ID Ljava/util/function/IntFunction;
FIELD f_nspqxnnz id I
10 changes: 10 additions & 0 deletions mappings/net/minecraft/recipe/Ingredient.mapping
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,19 @@ CLASS net/minecraft/unmapped/C_tcpsydrv net/minecraft/recipe/Ingredient
FIELD f_clxednmi ALLOW_EMPTY_CODEC Lcom/mojang/serialization/Codec;
FIELD f_kavmzocu entries Lnet/minecraft/unmapped/C_odfnijdo;
FIELD f_pjjkidpf PACKET_CODEC Lnet/minecraft/unmapped/C_qsrmwluu;
FIELD f_qdqdigpw OPTIONAL_PACKET_CODEC Lnet/minecraft/unmapped/C_qsrmwluu;
FIELD f_qqfxxlfb ENTRIES_CODEC Lcom/mojang/serialization/Codec;
FIELD f_wpamqjgv items Ljava/util/List;
METHOD m_hiksyixf getItems ()Ljava/util/List;
METHOD m_lqlwthyg getSlotDisplay ()Lnet/minecraft/unmapped/C_lahbbtfn;
METHOD m_mpihdccy ofItems ([Lnet/minecraft/unmapped/C_gmbqjnle;)Lnet/minecraft/unmapped/C_tcpsydrv;
ARG 0 items
METHOD m_nomwikbn testOptionalIngredient (Ljava/util/Optional;Lnet/minecraft/unmapped/C_sddaxwyk;)Z
ARG 0 optional
METHOD m_owdzpelq ofItems (Lnet/minecraft/unmapped/C_odfnijdo;)Lnet/minecraft/unmapped/C_tcpsydrv;
METHOD m_ssxtwbyt ofStacks (Ljava/util/stream/Stream;)Lnet/minecraft/unmapped/C_tcpsydrv;
ARG 0 stacks
METHOD m_xqanmytq ofItem (Lnet/minecraft/unmapped/C_gmbqjnle;)Lnet/minecraft/unmapped/C_tcpsydrv;
ARG 0 item
METHOD test (Ljava/lang/Object;)Z
ARG 1 stack
2 changes: 2 additions & 0 deletions mappings/net/minecraft/recipe/Recipe.mapping
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ CLASS net/minecraft/unmapped/C_awrmdwqd net/minecraft/recipe/Recipe
COMMENT or recipe books. Users can have stub implementations if they do not use
COMMENT those functionalities.
FIELD f_mwhtvqku PACKET_CODEC Lnet/minecraft/unmapped/C_qsrmwluu;
METHOD m_acqxyxru getRecipeBookCategory ()Lnet/minecraft/unmapped/C_sxzvngst;
METHOD m_aphdsjxe getSerializer ()Lnet/minecraft/unmapped/C_xfxrkzjt;
COMMENT {@return the serializer associated with this recipe}
METHOD m_bsknoala getGroup ()Ljava/lang/String;
METHOD m_jjsxdttb matches (Lnet/minecraft/unmapped/C_cxmcihwl;Lnet/minecraft/unmapped/C_cdctfzbn;)Z
ARG 1 input
METHOD m_jzhvfhoe getWorkstation ()Lnet/minecraft/unmapped/C_sddaxwyk;
Expand Down
2 changes: 2 additions & 0 deletions mappings/net/minecraft/recipe/RecipeManager.mapping
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ CLASS net/minecraft/unmapped/C_hjseusrb net/minecraft/recipe/RecipeManager
COMMENT
COMMENT <p>The returned set does not update with the manager. Modifications to the
COMMENT returned set do not affect this manager.
METHOD m_zjlbqobl (Lnet/minecraft/unmapped/C_czxxrbcp;)V
ARG 1 features
CLASS C_bvtkxdyi CachedCheck
METHOD m_ltqsvwgf getFirstMatch (Lnet/minecraft/unmapped/C_cxmcihwl;Lnet/minecraft/unmapped/C_bdwnwhiu;)Ljava/util/Optional;
ARG 1 input
3 changes: 3 additions & 0 deletions mappings/net/minecraft/recipe/SmithingRecipe.mapping
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
CLASS net/minecraft/unmapped/C_cjflvspo net/minecraft/recipe/SmithingRecipe
METHOD m_bgifrbsd template ()Ljava/util/Optional;
METHOD m_lbadbdzm base ()Ljava/util/Optional;
METHOD m_rudxpbwu addition ()Ljava/util/Optional;
Original file line number Diff line number Diff line change
@@ -1 +1 @@
CLASS net/minecraft/unmapped/C_mrybqpjh net/minecraft/recipe/book/RecipeBookCategory
CLASS net/minecraft/unmapped/C_loximogs net/minecraft/recipe/book/RecipeBookCategory
3 changes: 3 additions & 0 deletions mappings/net/minecraft/recipe/book/RecipeBookGroup.mapping
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CLASS net/minecraft/unmapped/C_sxzvngst net/minecraft/recipe/book/RecipeBookGroup
FIELD f_mldybwuv id I
FIELD f_uwfzbgex BY_ID Ljava/util/function/IntFunction;
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ CLASS net/minecraft/unmapped/C_krpwsfph net/minecraft/recipe/book/RecipeBookOpti
METHOD m_fcqervdh setFilteringCraftable (Lnet/minecraft/unmapped/C_mrybqpjh;Z)V
ARG 1 category
ARG 2 filtering
METHOD m_lbeqxrgh getCategoryOption (Lnet/minecraft/unmapped/C_mrybqpjh;)Lnet/minecraft/unmapped/C_krpwsfph$C_rkomjauh;
METHOD m_lcagcrlp isFilteringCraftable (Lnet/minecraft/unmapped/C_mrybqpjh;)Z
ARG 1 category
METHOD m_ngtqehdg fromPacket (Lnet/minecraft/unmapped/C_idfydwco;)Lnet/minecraft/unmapped/C_krpwsfph;
Expand Down
1 change: 1 addition & 0 deletions mappings/net/minecraft/recipe/book/RecipeBookType.mapping
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CLASS net/minecraft/unmapped/C_mrybqpjh net/minecraft/recipe/book/RecipeBookType
34 changes: 34 additions & 0 deletions mappings/net/minecraft/recipe/display/SlotDisplay.mapping
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
CLASS net/minecraft/unmapped/C_lahbbtfn net/minecraft/recipe/display/SlotDisplay
METHOD m_etiiiuiq resolve (Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;Ljava/util/function/Consumer;)V
ARG 2 consumer
METHOD m_hzkpthfi resolveFirstStack (Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;)Lnet/minecraft/unmapped/C_sddaxwyk;
METHOD m_lvfostcp isEnabled (Lnet/minecraft/unmapped/C_czxxrbcp;)Z
ARG 1 features
METHOD m_moncddlm resolveStacks (Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;)Ljava/util/List;
METHOD m_ozlrzzgw getType ()Lnet/minecraft/unmapped/C_lahbbtfn$C_bhpspplm;
METHOD m_uxrfsltr resolve (Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;Lnet/minecraft/unmapped/C_lahbbtfn$C_hcvhdsdg;)V
ARG 1 context
ARG 2 consumer
CLASS C_asnhtjgh FuelSlotDisplay
FIELD f_kvfeugrf INSTANCE Lnet/minecraft/unmapped/C_lahbbtfn$C_asnhtjgh;
CLASS C_bhpspplm Type
CLASS C_dagrdujt TagSlotDisplay
CLASS C_gesstkjc EmptySlotDisplay
FIELD f_pldqhvtn INSTANCE Lnet/minecraft/unmapped/C_lahbbtfn$C_gesstkjc;
CLASS C_hcvhdsdg StackConsumer
METHOD m_ebmwasyf accept (Lnet/minecraft/unmapped/C_cjzoxshv;)V
ARG 1 item
METHOD m_gyxiixtl accept (Lnet/minecraft/unmapped/C_vorddnax;)V
ARG 1 item
METHOD m_muzkpdkq accept (Lnet/minecraft/unmapped/C_sddaxwyk;)V
CLASS C_ozrotgvv ResolutionContext
METHOD m_dkuuvoci fuelTimes ()Lnet/minecraft/unmapped/C_smdnyqwx;
METHOD m_tooywucm create (Lnet/minecraft/unmapped/C_cdctfzbn;)Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;
METHOD m_zjoojdbv registries ()Lnet/minecraft/unmapped/C_vtbxyypo$C_etmlgbig;
CLASS C_pmazkmzv CompositeSlotDisplay
CLASS C_pssneihq ItemSlotDisplay
METHOD <init> (Lnet/minecraft/unmapped/C_vorddnax;)V
ARG 1 item
CLASS C_twdqwrvw StackSlotDisplay
CLASS C_wilvedch SmithingTrimSlotDisplay
FIELD f_uzmpeglf INSTANCE Lnet/minecraft/unmapped/C_lahbbtfn$C_wilvedch;
1 change: 1 addition & 0 deletions simple_type_field_names.json5
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
},
"net/minecraft/unmapped/C_lnokcayd$C_wnogvxsu": "collector", // ItemGroup.ItemStackCollector
"net/minecraft/unmapped/C_lnokcayd$C_tndlmady": "visibility", // ItemGroup.Visibility
"net/minecraft/unmapped/C_lahbbtfn$C_bhpspplm": "type", // SlotDisplay.Type

// Entity
"net/minecraft/unmapped/C_astfners": "entity", // Entity
Expand Down

3 comments on commit 80230c4

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With commit 80230c4, 76 file(s) were updated with 772 line(s) added and 756 removed compared to the latest Quilt Mappings version.

View the diff here (1/3):
diff -bur namedTargetSrc/net/minecraft/block/entity/AbstractFurnaceBlockEntity.java namedSrc/net/minecraft/block/entity/AbstractFurnaceBlockEntity.java
--- namedTargetSrc/net/minecraft/block/entity/AbstractFurnaceBlockEntity.java	2024-10-07 17:15:15.657637039 +0000
+++ namedSrc/net/minecraft/block/entity/AbstractFurnaceBlockEntity.java	2024-10-07 17:14:07.338686246 +0000
@@ -405,7 +405,7 @@
     */
    private static int getCookTime(ServerWorld world, AbstractFurnaceBlockEntity blockEntity) {
       SingleRecipeInput lv = new SingleRecipeInput(blockEntity.getStack(0));
-      return (Integer)blockEntity.recipeCache.getFirstMatch(lv, world).map(recipe -> ((AbstractCookingRecipe)recipe.value()).m_sdqrhyci()).orElse(200);
+      return (Integer)blockEntity.recipeCache.getFirstMatch(lv, world).map(recipe -> ((AbstractCookingRecipe)recipe.value()).getCookTime()).orElse(200);
    }
 
    /**
@@ -545,7 +545,7 @@
       for (Entry<RegistryKey<Recipe<?>>> entry : this.recipesUsed.reference2IntEntrySet()) {
          world.m_mlvimbbc().get((RegistryKey<Recipe<?>>)entry.getKey()).ifPresent(recipe -> {
             list.add(recipe);
-            dropExperience(world, pos, entry.getIntValue(), ((AbstractCookingRecipe)recipe.value()).m_tmbqodoo());
+            dropExperience(world, pos, entry.getIntValue(), ((AbstractCookingRecipe)recipe.value()).getExperience());
          });
       }
 
diff -bur namedTargetSrc/net/minecraft/block/entity/CampfireBlockEntity.java namedSrc/net/minecraft/block/entity/CampfireBlockEntity.java
--- namedTargetSrc/net/minecraft/block/entity/CampfireBlockEntity.java	2024-10-07 17:15:15.584638152 +0000
+++ namedSrc/net/minecraft/block/entity/CampfireBlockEntity.java	2024-10-07 17:14:07.234687833 +0000
@@ -223,7 +223,7 @@
                return false;
             }
 
-            this.cookingTotalTimes[i] = ((CampfireCookingRecipe)((RecipeHolder)optional.get()).value()).m_sdqrhyci();
+            this.cookingTotalTimes[i] = ((CampfireCookingRecipe)((RecipeHolder)optional.get()).value()).getCookTime();
             this.cookingTimes[i] = 0;
             this.itemsBeingCooked.set(i, item.copyAndConsume(1, source));
             world.emitGameEvent(GameEvent.BLOCK_CHANGE, this.getPos(), GameEvent.Context.create(source, this.getCachedState()));
diff -bur namedTargetSrc/net/minecraft/client/gui/screen/ingame/BlastFurnaceScreen.java namedSrc/net/minecraft/client/gui/screen/ingame/BlastFurnaceScreen.java
--- namedTargetSrc/net/minecraft/client/gui/screen/ingame/BlastFurnaceScreen.java	2024-10-07 17:15:15.790635012 +0000
+++ namedSrc/net/minecraft/client/gui/screen/ingame/BlastFurnaceScreen.java	2024-10-07 17:14:07.544683112 +0000
@@ -6,10 +6,10 @@
 import net.minecraft.client.gui.widget.recipe_book.RecipeBookWidget;
 import net.minecraft.entity.player.PlayerInventory;
 import net.minecraft.item.Items;
+import net.minecraft.recipe.book.RecipeBookGroup;
 import net.minecraft.screen.BlastFurnaceScreenHandler;
 import net.minecraft.text.Text;
 import net.minecraft.unmapped.C_eeadosbl;
-import net.minecraft.unmapped.C_sxzvngst;
 import net.minecraft.util.Identifier;
 
 /**
@@ -42,8 +42,8 @@
     */
    private static final List<RecipeBookWidget.C_qodamwli> f_mxenyliv = List.of(
       new RecipeBookWidget.C_qodamwli(C_eeadosbl.BLAST_FURNACE),
-      new RecipeBookWidget.C_qodamwli(Items.REDSTONE_ORE, C_sxzvngst.BLAST_FURNACE_BLOCKS),
-      new RecipeBookWidget.C_qodamwli(Items.IRON_SHOVEL, Items.GOLDEN_LEGGINGS, C_sxzvngst.BLAST_FURNACE_MISC)
+      new RecipeBookWidget.C_qodamwli(Items.REDSTONE_ORE, RecipeBookGroup.BLAST_FURNACE_BLOCKS),
+      new RecipeBookWidget.C_qodamwli(Items.IRON_SHOVEL, Items.GOLDEN_LEGGINGS, RecipeBookGroup.BLAST_FURNACE_MISC)
    );
 
    /**
diff -bur namedTargetSrc/net/minecraft/client/gui/screen/ingame/FurnaceScreen.java namedSrc/net/minecraft/client/gui/screen/ingame/FurnaceScreen.java
--- namedTargetSrc/net/minecraft/client/gui/screen/ingame/FurnaceScreen.java	2024-10-07 17:15:15.746635683 +0000
+++ namedSrc/net/minecraft/client/gui/screen/ingame/FurnaceScreen.java	2024-10-07 17:14:07.473684191 +0000
@@ -6,10 +6,10 @@
 import net.minecraft.client.gui.widget.recipe_book.RecipeBookWidget;
 import net.minecraft.entity.player.PlayerInventory;
 import net.minecraft.item.Items;
+import net.minecraft.recipe.book.RecipeBookGroup;
 import net.minecraft.screen.FurnaceScreenHandler;
 import net.minecraft.text.Text;
 import net.minecraft.unmapped.C_eeadosbl;
-import net.minecraft.unmapped.C_sxzvngst;
 import net.minecraft.util.Identifier;
 
 /**
@@ -42,9 +42,9 @@
     */
    private static final List<RecipeBookWidget.C_qodamwli> f_uaipoaax = List.of(
       new RecipeBookWidget.C_qodamwli(C_eeadosbl.FURNACE),
-      new RecipeBookWidget.C_qodamwli(Items.PORKCHOP, C_sxzvngst.FURNACE_FOOD),
-      new RecipeBookWidget.C_qodamwli(Items.STONE, C_sxzvngst.FURNACE_BLOCKS),
-      new RecipeBookWidget.C_qodamwli(Items.LAVA_BUCKET, Items.EMERALD, C_sxzvngst.FURNACE_MISC)
+      new RecipeBookWidget.C_qodamwli(Items.PORKCHOP, RecipeBookGroup.FURNACE_FOOD),
+      new RecipeBookWidget.C_qodamwli(Items.STONE, RecipeBookGroup.FURNACE_BLOCKS),
+      new RecipeBookWidget.C_qodamwli(Items.LAVA_BUCKET, Items.EMERALD, RecipeBookGroup.FURNACE_MISC)
    );
 
    /**
diff -bur namedTargetSrc/net/minecraft/client/gui/screen/ingame/SmokerScreen.java namedSrc/net/minecraft/client/gui/screen/ingame/SmokerScreen.java
--- namedTargetSrc/net/minecraft/client/gui/screen/ingame/SmokerScreen.java	2024-10-07 17:15:15.823634509 +0000
+++ namedSrc/net/minecraft/client/gui/screen/ingame/SmokerScreen.java	2024-10-07 17:14:07.574682656 +0000
@@ -6,10 +6,10 @@
 import net.minecraft.client.gui.widget.recipe_book.RecipeBookWidget;
 import net.minecraft.entity.player.PlayerInventory;
 import net.minecraft.item.Items;
+import net.minecraft.recipe.book.RecipeBookGroup;
 import net.minecraft.screen.SmokerScreenHandler;
 import net.minecraft.text.Text;
 import net.minecraft.unmapped.C_eeadosbl;
-import net.minecraft.unmapped.C_sxzvngst;
 import net.minecraft.util.Identifier;
 
 /**
@@ -41,7 +41,7 @@
     * Mapping not found
     */
    private static final List<RecipeBookWidget.C_qodamwli> f_ybczuptv = List.of(
-      new RecipeBookWidget.C_qodamwli(C_eeadosbl.SMOKER), new RecipeBookWidget.C_qodamwli(Items.PORKCHOP, C_sxzvngst.SMOKER_FOOD)
+      new RecipeBookWidget.C_qodamwli(C_eeadosbl.SMOKER), new RecipeBookWidget.C_qodamwli(Items.PORKCHOP, RecipeBookGroup.SMOKER_FOOD)
    );
 
    /**
diff -bur namedTargetSrc/net/minecraft/client/gui/screen/ingame/StonecutterScreen.java namedSrc/net/minecraft/client/gui/screen/ingame/StonecutterScreen.java
--- namedTargetSrc/net/minecraft/client/gui/screen/ingame/StonecutterScreen.java	2024-10-07 17:15:15.607637801 +0000
+++ namedSrc/net/minecraft/client/gui/screen/ingame/StonecutterScreen.java	2024-10-07 17:14:07.268687314 +0000
@@ -8,10 +8,10 @@
 import net.minecraft.client.sound.PositionedSoundInstance;
 import net.minecraft.entity.player.PlayerInventory;
 import net.minecraft.recipe.StonecuttingRecipe;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.screen.StonecutterScreenHandler;
 import net.minecraft.sound.SoundEvents;
 import net.minecraft.text.Text;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_qzkacgwi;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
@@ -172,9 +172,9 @@
             int p = k + o % 4 * 16;
             int q = l + o / 4 * 18 + 2;
             if (x >= p && x < p + 16 && y >= q && y < q + 18) {
-               C_lahbbtfn.C_ozrotgvv lv2 = C_lahbbtfn.C_ozrotgvv.m_tooywucm(this.client.world);
-               C_lahbbtfn lv3 = ((C_qzkacgwi.C_kkkkgrpx)lv.entries().get(n)).recipe().optionDisplay();
-               graphics.drawTooltip(this.textRenderer, lv3.m_hzkpthfi(lv2), x, y);
+               SlotDisplay.ResolutionContext lv2 = SlotDisplay.ResolutionContext.create(this.client.world);
+               SlotDisplay lv3 = ((C_qzkacgwi.C_kkkkgrpx)lv.entries().get(n)).recipe().optionDisplay();
+               graphics.drawTooltip(this.textRenderer, lv3.resolveFirstStack(lv2), x, y);
             }
          }
       }
@@ -209,15 +209,15 @@
     */
    private void renderRecipeIcons(GuiGraphics graphics, int x, int y, int scrollOffset) {
       C_qzkacgwi.C_kvadugef<StonecuttingRecipe> lv = this.handler.m_facrzrpm();
-      C_lahbbtfn.C_ozrotgvv lv2 = C_lahbbtfn.C_ozrotgvv.m_tooywucm(this.client.world);
+      SlotDisplay.ResolutionContext lv2 = SlotDisplay.ResolutionContext.create(this.client.world);
 
       for (int l = this.scrollOffset; l < scrollOffset && l < lv.m_tckkhkkr(); l++) {
          int m = l - this.scrollOffset;
          int n = x + m % 4 * 16;
          int o = m / 4;
          int p = y + o * 18 + 2;
-         C_lahbbtfn lv3 = ((C_qzkacgwi.C_kkkkgrpx)lv.entries().get(l)).recipe().optionDisplay();
-         graphics.drawItem(lv3.m_hzkpthfi(lv2), n, p);
+         SlotDisplay lv3 = ((C_qzkacgwi.C_kkkkgrpx)lv.entries().get(l)).recipe().optionDisplay();
+         graphics.drawItem(lv3.resolveFirstStack(lv2), n, p);
       }
    }
 
diff -bur namedTargetSrc/net/minecraft/client/gui/screen/recipe_book/RecipeBookResults.java namedSrc/net/minecraft/client/gui/screen/recipe_book/RecipeBookResults.java
--- namedTargetSrc/net/minecraft/client/gui/screen/recipe_book/RecipeBookResults.java	2024-10-07 17:15:15.838634281 +0000
+++ namedSrc/net/minecraft/client/gui/screen/recipe_book/RecipeBookResults.java	2024-10-07 17:14:07.590682412 +0000
@@ -17,9 +17,9 @@
 import net.minecraft.client.recipe_book.ClientRecipeBook;
 import net.minecraft.component.DataComponentTypes;
 import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.text.Text;
 import net.minecraft.unmapped.C_gjevllvc;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_tglmjehp;
 import net.minecraft.util.Identifier;
 import org.jetbrains.annotations.Nullable;
@@ -174,7 +174,7 @@
     */
    private void refreshResultButtons() {
       int i = 20 * this.currentPage;
-      C_lahbbtfn.C_ozrotgvv lv = C_lahbbtfn.C_ozrotgvv.m_tooywucm(this.client.world);
+      SlotDisplay.ResolutionContext lv = SlotDisplay.ResolutionContext.create(this.client.world);
 
       for (int j = 0; j < this.resultButtons.size(); j++) {
          AnimatedResultButton lv2 = (AnimatedResultButton)this.resultButtons.get(j);
@@ -287,7 +287,7 @@
          this.refreshResultButtons();
          return true;
       } else {
-         C_lahbbtfn.C_ozrotgvv lv = C_lahbbtfn.C_ozrotgvv.m_tooywucm(this.client.world);
+         SlotDisplay.ResolutionContext lv = SlotDisplay.ResolutionContext.create(this.client.world);
 
          for (AnimatedResultButton lv2 : this.resultButtons) {
             if (lv2.mouseClicked(mouseX, mouseY, button)) {
diff -bur namedTargetSrc/net/minecraft/client/gui/screen/recipe_book/RecipeResultCollection.java namedSrc/net/minecraft/client/gui/screen/recipe_book/RecipeResultCollection.java
--- namedTargetSrc/net/minecraft/client/gui/screen/recipe_book/RecipeResultCollection.java	2024-10-07 17:15:15.829634418 +0000
+++ namedSrc/net/minecraft/client/gui/screen/recipe_book/RecipeResultCollection.java	2024-10-07 17:14:07.579682580 +0000
@@ -7,9 +7,9 @@
 import java.util.function.Predicate;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.unmapped.C_dsptsoym;
 import net.minecraft.unmapped.C_fcquvjby;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_tglmjehp;
 import net.minecraft.unmapped.C_vhhfbyhp;
 
@@ -57,10 +57,10 @@
     */
    private static boolean shouldHaveSingleOutput(List<C_dsptsoym> recipes) {
       int i = recipes.size();
-      C_lahbbtfn lv = ((C_dsptsoym)recipes.getFirst()).display().result();
+      SlotDisplay lv = ((C_dsptsoym)recipes.getFirst()).display().result();
 
       for (int j = 1; j < i; j++) {
-         C_lahbbtfn lv2 = ((C_dsptsoym)recipes.get(j)).display().result();
+         SlotDisplay lv2 = ((C_dsptsoym)recipes.get(j)).display().result();
          if (!lv2.equals(lv)) {
             return false;
          }
diff -bur namedTargetSrc/net/minecraft/client/gui/widget/button/recipe/book/AnimatedResultButton.java namedSrc/net/minecraft/client/gui/widget/button/recipe/book/AnimatedResultButton.java
--- namedTargetSrc/net/minecraft/client/gui/widget/button/recipe/book/AnimatedResultButton.java	2024-10-07 17:15:15.743635729 +0000
+++ namedSrc/net/minecraft/client/gui/widget/button/recipe/book/AnimatedResultButton.java	2024-10-07 17:14:07.466684298 +0000
@@ -14,11 +14,11 @@
 import net.minecraft.client.gui.widget.ClickableWidget;
 import net.minecraft.client.render.RenderLayer;
 import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.text.CommonTexts;
 import net.minecraft.text.Text;
 import net.minecraft.unmapped.C_dsptsoym;
 import net.minecraft.unmapped.C_gjevllvc;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_tglmjehp;
 import net.minecraft.util.Identifier;
 import org.lwjgl.glfw.GLFW;
@@ -94,9 +94,9 @@
 
    /**
     * @mapping {@literal hashed m_tpmtoqta Lnet/minecraft/unmapped/C_klcvwyjp;m_tpmtoqta(Lnet/minecraft/unmapped/C_ymmazfhq;ZLnet/minecraft/unmapped/C_hbytyuck;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;)V}
-    * @mapping {@literal named showResultCollection Lnet/minecraft/client/gui/widget/button/recipe/book/AnimatedResultButton;showResultCollection(Lnet/minecraft/client/gui/screen/recipe_book/RecipeResultCollection;ZLnet/minecraft/client/gui/screen/recipe_book/RecipeBookResults;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;)V}
+    * @mapping {@literal named showResultCollection Lnet/minecraft/client/gui/widget/button/recipe/book/AnimatedResultButton;showResultCollection(Lnet/minecraft/client/gui/screen/recipe_book/RecipeResultCollection;ZLnet/minecraft/client/gui/screen/recipe_book/RecipeBookResults;Lnet/minecraft/recipe/display/SlotDisplay$ResolutionContext;)V}
     */
-   public void showResultCollection(RecipeResultCollection resultCollection, boolean bl, RecipeBookResults results, C_lahbbtfn.C_ozrotgvv arg3) {
+   public void showResultCollection(RecipeResultCollection resultCollection, boolean bl, RecipeBookResults results, SlotDisplay.ResolutionContext arg3) {
       this.resultCollection = resultCollection;
       List<C_dsptsoym> list = resultCollection.m_dbqhrjxo(bl ? RecipeResultCollection.C_zvqcnrlc.CRAFTABLE : RecipeResultCollection.C_zvqcnrlc.ANY);
       this.f_rtemycrr = list.stream().map(arg2 -> new AnimatedResultButton.C_kuqnfeov(arg2.id(), arg2.m_gcmdljav(arg3))).toList();
diff -bur namedTargetSrc/net/minecraft/client/gui/widget/button/recipe/book/RecipeGroupButtonWidget.java namedSrc/net/minecraft/client/gui/widget/button/recipe/book/RecipeGroupButtonWidget.java
--- namedTargetSrc/net/minecraft/client/gui/widget/button/recipe/book/RecipeGroupButtonWidget.java	2024-10-07 17:15:15.853634052 +0000
+++ namedSrc/net/minecraft/client/gui/widget/button/recipe/book/RecipeGroupButtonWidget.java	2024-10-07 17:14:07.610682108 +0000
@@ -11,8 +11,8 @@
 import net.minecraft.client.recipe_book.ClientRecipeBook;
 import net.minecraft.client.render.RenderLayer;
 import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.book.RecipeBookCategory;
 import net.minecraft.unmapped.C_dsptsoym;
-import net.minecraft.unmapped.C_loximogs;
 import net.minecraft.util.Identifier;
 
 /**
@@ -115,9 +115,9 @@
 
    /**
     * @mapping {@literal hashed m_zmhxkyvu Lnet/minecraft/unmapped/C_clknlkpo;m_zmhxkyvu()Lnet/minecraft/unmapped/C_loximogs;}
-    * @mapping {@literal named getCategory Lnet/minecraft/client/gui/widget/button/recipe/book/RecipeGroupButtonWidget;getCategory()Lnet/minecraft/unmapped/C_loximogs;}
+    * @mapping {@literal named getCategory Lnet/minecraft/client/gui/widget/button/recipe/book/RecipeGroupButtonWidget;getCategory()Lnet/minecraft/recipe/book/RecipeBookCategory;}
     */
-   public C_loximogs getCategory() {
+   public RecipeBookCategory getCategory() {
       return this.f_glkowyeg.category();
    }
 
diff -bur namedTargetSrc/net/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget.java namedSrc/net/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget.java
--- namedTargetSrc/net/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget.java	2024-10-07 17:15:15.709636247 +0000
+++ namedSrc/net/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget.java	2024-10-07 17:14:07.416685058 +0000
@@ -15,12 +15,12 @@
 import net.minecraft.client.gui.widget.ClickableWidget;
 import net.minecraft.client.render.RenderLayer;
 import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.text.CommonTexts;
 import net.minecraft.unmapped.C_coojbyml;
 import net.minecraft.unmapped.C_cxwpjuid;
 import net.minecraft.unmapped.C_dsptsoym;
 import net.minecraft.unmapped.C_gjevllvc;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_ssetfehe;
 import net.minecraft.unmapped.C_tglmjehp;
 import net.minecraft.unmapped.C_vhhfbyhp;
@@ -112,10 +112,10 @@
 
    /**
     * @mapping {@literal hashed m_jmrolnpv Lnet/minecraft/unmapped/C_ngptzlri;m_jmrolnpv(Lnet/minecraft/unmapped/C_ymmazfhq;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;ZIIIIF)V}
-    * @mapping {@literal named showAlternativesForResult Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget;showAlternativesForResult(Lnet/minecraft/client/gui/screen/recipe_book/RecipeResultCollection;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;ZIIIIF)V}
+    * @mapping {@literal named showAlternativesForResult Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget;showAlternativesForResult(Lnet/minecraft/client/gui/screen/recipe_book/RecipeResultCollection;Lnet/minecraft/recipe/display/SlotDisplay$ResolutionContext;ZIIIIF)V}
     */
    public void showAlternativesForResult(
-      RecipeResultCollection results, C_lahbbtfn.C_ozrotgvv arg2, boolean bl, int buttonX, int buttonY, int areaCenterX, int areaCenterY, float delta
+      RecipeResultCollection results, SlotDisplay.ResolutionContext arg2, boolean bl, int buttonX, int buttonY, int areaCenterX, int areaCenterY, float delta
    ) {
       this.resultCollection = results;
       List<C_dsptsoym> list = results.m_dbqhrjxo(RecipeResultCollection.C_zvqcnrlc.CRAFTABLE);
@@ -425,23 +425,25 @@
 
       /**
        * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_ngptzlri$C_fadkhljc;<init>(Lnet/minecraft/unmapped/C_ngptzlri;IILnet/minecraft/unmapped/C_tglmjehp;Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;Z)V}
-       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget$C_fadkhljc;<init>(Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget;IILnet/minecraft/unmapped/C_tglmjehp;Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;Z)V}
+       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget$C_fadkhljc;<init>(Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget;IILnet/minecraft/unmapped/C_tglmjehp;Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/recipe/display/SlotDisplay$ResolutionContext;Z)V}
        */
-      public C_fadkhljc(final int x, final int y, final C_tglmjehp recipe, final C_vhhfbyhp obj, final C_lahbbtfn.C_ozrotgvv arg4, final boolean craftable) {
+      public C_fadkhljc(
+         final int x, final int y, final C_tglmjehp recipe, final C_vhhfbyhp obj, final SlotDisplay.ResolutionContext arg4, final boolean craftable
+      ) {
          super(x, y, recipe, craftable, m_nbcvutxn(obj, arg4));
       }
 
       /**
        * @mapping {@literal hashed m_nbcvutxn Lnet/minecraft/unmapped/C_ngptzlri$C_fadkhljc;m_nbcvutxn(Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;)Ljava/util/List;}
-       * @mapping {@literal named m_nbcvutxn Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget$C_fadkhljc;m_nbcvutxn(Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;)Ljava/util/List;}
+       * @mapping {@literal named m_nbcvutxn Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget$C_fadkhljc;m_nbcvutxn(Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/recipe/display/SlotDisplay$ResolutionContext;)Ljava/util/List;}
        */
-      private static List<RecipeAlternativesWidget.AlternativeButtonWidget.InputSlot> m_nbcvutxn(C_vhhfbyhp obj, C_lahbbtfn.C_ozrotgvv arg2) {
+      private static List<RecipeAlternativesWidget.AlternativeButtonWidget.InputSlot> m_nbcvutxn(C_vhhfbyhp obj, SlotDisplay.ResolutionContext arg2) {
          List<RecipeAlternativesWidget.AlternativeButtonWidget.InputSlot> list = new ArrayList();
          Objects.requireNonNull(obj);
          switch (obj) {
             case C_cxwpjuid lv:
                C_coojbyml.m_dtccadpi(3, 3, lv.width(), lv.height(), lv.ingredients(), (arg2x, ix, j, k) -> {
-                  List<ItemStack> list2x = arg2x.m_moncddlm(arg2);
+                  List<ItemStack> list2x = arg2x.resolveStacks(arg2);
                   if (!list2x.isEmpty()) {
                      list.add(m_dyepijgl(j, k, list2x));
                   }
@@ -449,10 +451,10 @@
                break;
             case C_ssetfehe lv2:
                label19: {
-                  List<C_lahbbtfn> list2 = lv2.ingredients();
+                  List<SlotDisplay> list2 = lv2.ingredients();
 
                   for (int i = 0; i < list2.size(); i++) {
-                     List<ItemStack> list3 = ((C_lahbbtfn)list2.get(i)).m_moncddlm(arg2);
+                     List<ItemStack> list3 = ((SlotDisplay)list2.get(i)).resolveStacks(arg2);
                      if (!list3.isEmpty()) {
                         list.add(m_dyepijgl(i % 3, i / 3, list3));
                      }
@@ -502,20 +504,21 @@
 
       /**
        * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_ngptzlri$C_saqnuqje;<init>(Lnet/minecraft/unmapped/C_ngptzlri;IILnet/minecraft/unmapped/C_tglmjehp;Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;Z)V}
-       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget$FurnaceAlternativeButtonWidget;<init>(Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget;IILnet/minecraft/unmapped/C_tglmjehp;Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;Z)V}
+       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget$FurnaceAlternativeButtonWidget;<init>(Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget;IILnet/minecraft/unmapped/C_tglmjehp;Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/recipe/display/SlotDisplay$ResolutionContext;Z)V}
        */
       public FurnaceAlternativeButtonWidget(
-         final int x, final int y, final C_tglmjehp recipe, final C_vhhfbyhp arg3, final C_lahbbtfn.C_ozrotgvv arg4, final boolean craftable
+         final int x, final int y, final C_tglmjehp recipe, final C_vhhfbyhp arg3, final SlotDisplay.ResolutionContext context, final boolean craftable
       ) {
-         super(x, y, recipe, craftable, m_teabxghg(arg3, arg4));
+         super(x, y, recipe, craftable, m_teabxghg(arg3, context));
       }
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_teabxghg Lnet/minecraft/unmapped/C_ngptzlri$C_saqnuqje;m_teabxghg(Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/unmapped/C_lahbbtfn$C_ozrotgvv;)Ljava/util/List;}
+       * @mapping {@literal named m_teabxghg Lnet/minecraft/client/gui/widget/recipe_book/RecipeAlternativesWidget$FurnaceAlternativeButtonWidget;m_teabxghg(Lnet/minecraft/unmapped/C_vhhfbyhp;Lnet/minecraft/recipe/display/SlotDisplay$ResolutionContext;)Ljava/util/List;}
        */
-      private static List<RecipeAlternativesWidget.AlternativeButtonWidget.InputSlot> m_teabxghg(C_vhhfbyhp arg, C_lahbbtfn.C_ozrotgvv arg2) {
+      private static List<RecipeAlternativesWidget.AlternativeButtonWidget.InputSlot> m_teabxghg(C_vhhfbyhp arg, SlotDisplay.ResolutionContext context) {
          if (arg instanceof C_wfacxbbm lv) {
-            List<ItemStack> list = lv.ingredient().m_moncddlm(arg2);
+            List<ItemStack> list = lv.ingredient().resolveStacks(context);
             if (!list.isEmpty()) {
                return List.of(m_dyepijgl(1, 1, list));
             }
diff -bur namedTargetSrc/net/minecraft/client/gui/widget/recipe_book/RecipeBookWidget.java namedSrc/net/minecraft/client/gui/widget/recipe_book/RecipeBookWidget.java
--- namedTargetSrc/net/minecraft/client/gui/widget/recipe_book/RecipeBookWidget.java	2024-10-07 17:15:15.817634601 +0000
+++ namedSrc/net/minecraft/client/gui/widget/recipe_book/RecipeBookWidget.java	2024-10-07 17:14:07.567682762 +0000
@@ -37,6 +37,9 @@
 import net.minecraft.item.Items;
 import net.minecraft.network.packet.c2s.play.RecipeCategoryOptionUpdateC2SPacket;
 import net.minecraft.recipe.book.RecipeBookCategory;
+import net.minecraft.recipe.book.RecipeBookGroup;
+import net.minecraft.recipe.book.RecipeBookType;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.screen.AbstractFurnaceScreenHandler;
 import net.minecraft.screen.AbstractRecipeScreenHandler;
 import net.minecraft.screen.slot.Slot;
@@ -44,10 +47,7 @@
 import net.minecraft.unmapped.C_eeadosbl;
 import net.minecraft.unmapped.C_fcquvjby;
 import net.minecraft.unmapped.C_gjevllvc;
-import net.minecraft.unmapped.C_lahbbtfn;
-import net.minecraft.unmapped.C_loximogs;
 import net.minecraft.unmapped.C_pvjasgvj;
-import net.minecraft.unmapped.C_sxzvngst;
 import net.minecraft.unmapped.C_tglmjehp;
 import net.minecraft.unmapped.C_vhhfbyhp;
 import net.minecraft.util.Formatting;
@@ -460,7 +460,7 @@
       int l = 0;
 
       for (RecipeGroupButtonWidget lv : this.tabButtons) {
-         C_loximogs lv2 = lv.getCategory();
+         RecipeBookCategory lv2 = lv.getCategory();
          if (lv2 instanceof C_eeadosbl) {
             lv.visible = true;
             lv.setPosition(i, j + 27 * l++);
@@ -643,7 +643,7 @@
     * @mapping {@literal named toggleFilteringCraftable Lnet/minecraft/client/gui/widget/recipe_book/RecipeBookWidget;toggleFilteringCraftable()Z}
     */
    private boolean toggleFilteringCraftable() {
-      RecipeBookCategory lv = this.craftingScreenHandler.getCategory();
+      RecipeBookType lv = this.craftingScreenHandler.getCategory();
       boolean bl = !this.recipeBook.m_sztksdtu(lv);
       this.recipeBook.setFilteringCraftable(lv, bl);
       return bl;
@@ -804,14 +804,14 @@
     */
    public void m_dlqouukn(C_vhhfbyhp arg) {
       this.f_jaklakhx.m_qfbpxgsm();
-      C_lahbbtfn.C_ozrotgvv lv = C_lahbbtfn.C_ozrotgvv.m_tooywucm((World)Objects.requireNonNull(this.client.world));
+      SlotDisplay.ResolutionContext lv = SlotDisplay.ResolutionContext.create((World)Objects.requireNonNull(this.client.world));
       this.m_qtodmjbz(this.f_jaklakhx, arg, lv);
    }
 
    /**
     * Mapping not found
     */
-   protected abstract void m_qtodmjbz(C_pvjasgvj arg, C_vhhfbyhp arg2, C_lahbbtfn.C_ozrotgvv arg3);
+   protected abstract void m_qtodmjbz(C_pvjasgvj arg, C_vhhfbyhp arg2, SlotDisplay.ResolutionContext arg3);
 
    /**
     * @mapping {@literal hashed m_klldduvd Lnet/minecraft/unmapped/C_xaybmvwz;m_klldduvd()V}
@@ -819,7 +819,7 @@
     */
    protected void sendBookDataPacket() {
       if (this.client.getNetworkHandler() != null) {
-         RecipeBookCategory lv = this.craftingScreenHandler.getCategory();
+         RecipeBookType lv = this.craftingScreenHandler.getCategory();
          boolean bl = this.recipeBook.getOptions().isGuiOpen(lv);
          boolean bl2 = this.recipeBook.getOptions().isFilteringCraftable(lv);
          this.client.getNetworkHandler().send(new RecipeCategoryOptionUpdateC2SPacket(lv, bl, bl2));
@@ -859,7 +859,7 @@
     * @mapping {@literal named net/minecraft/client/gui/widget/recipe_book/RecipeBookWidget$C_qodamwli}
     */
    @Environment(EnvType.CLIENT)
-   public static record C_qodamwli(ItemStack primaryIcon, Optional<ItemStack> secondaryIcon, C_loximogs category) {
+   public static record C_qodamwli(ItemStack primaryIcon, Optional<ItemStack> secondaryIcon, RecipeBookCategory category) {
       /**
        * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_xaybmvwz$C_qodamwli;<init>(Lnet/minecraft/unmapped/C_eeadosbl;)V}
        * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeBookWidget$C_qodamwli;<init>(Lnet/minecraft/unmapped/C_eeadosbl;)V}
@@ -870,17 +870,17 @@
 
       /**
        * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_xaybmvwz$C_qodamwli;<init>(Lnet/minecraft/unmapped/C_vorddnax;Lnet/minecraft/unmapped/C_sxzvngst;)V}
-       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeBookWidget$C_qodamwli;<init>(Lnet/minecraft/item/Item;Lnet/minecraft/unmapped/C_sxzvngst;)V}
+       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeBookWidget$C_qodamwli;<init>(Lnet/minecraft/item/Item;Lnet/minecraft/recipe/book/RecipeBookGroup;)V}
        */
-      public C_qodamwli(Item item, C_sxzvngst category) {
+      public C_qodamwli(Item item, RecipeBookGroup category) {
          this(new ItemStack(item), Optional.empty(), category);
       }
 
       /**
        * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_xaybmvwz$C_qodamwli;<init>(Lnet/minecraft/unmapped/C_vorddnax;Lnet/minecraft/unmapped/C_vorddnax;Lnet/minecraft/unmapped/C_sxzvngst;)V}
-       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeBookWidget$C_qodamwli;<init>(Lnet/minecraft/item/Item;Lnet/minecraft/item/Item;Lnet/minecraft/unmapped/C_sxzvngst;)V}
+       * @mapping {@literal named <init> Lnet/minecraft/client/gui/widget/recipe_book/RecipeBookWidget$C_qodamwli;<init>(Lnet/minecraft/item/Item;Lnet/minecraft/item/Item;Lnet/minecraft/recipe/book/RecipeBookGroup;)V}
        */
-      public C_qodamwli(Item arg, Item arg2, C_sxzvngst category) {
+      public C_qodamwli(Item arg, Item arg2, RecipeBookGroup category) {
          this(new ItemStack(arg), Optional.of(new ItemStack(arg2)), category);
       }
    }
diff -bur namedTargetSrc/net/minecraft/client/recipe_book/ClientRecipeBook.java namedSrc/net/minecraft/client/recipe_book/ClientRecipeBook.java
--- namedTargetSrc/net/minecraft/client/recipe_book/ClientRecipeBook.java	2024-10-07 17:15:15.686636597 +0000
+++ namedSrc/net/minecraft/client/recipe_book/ClientRecipeBook.java	2024-10-07 17:14:07.385685529 +0000
@@ -16,10 +16,10 @@
 import net.fabricmc.api.Environment;
 import net.minecraft.client.gui.screen.recipe_book.RecipeResultCollection;
 import net.minecraft.recipe.book.RecipeBook;
+import net.minecraft.recipe.book.RecipeBookCategory;
+import net.minecraft.recipe.book.RecipeBookGroup;
 import net.minecraft.unmapped.C_dsptsoym;
 import net.minecraft.unmapped.C_eeadosbl;
-import net.minecraft.unmapped.C_loximogs;
-import net.minecraft.unmapped.C_sxzvngst;
 import net.minecraft.unmapped.C_tglmjehp;
 
 /**
@@ -40,7 +40,7 @@
     * @mapping {@literal hashed f_isptgmct Lnet/minecraft/unmapped/C_sjlfgpfd;f_isptgmct:Ljava/util/Map;}
     * @mapping {@literal named resultsByGroup Lnet/minecraft/client/recipe_book/ClientRecipeBook;resultsByGroup:Ljava/util/Map;}
     */
-   private Map<C_loximogs, List<RecipeResultCollection>> resultsByGroup = Map.of();
+   private Map<RecipeBookCategory, List<RecipeResultCollection>> resultsByGroup = Map.of();
    /**
     * @mapping {@literal hashed f_thdqgnno Lnet/minecraft/unmapped/C_sjlfgpfd;f_thdqgnno:Ljava/util/List;}
     * @mapping {@literal named orderedResults Lnet/minecraft/client/recipe_book/ClientRecipeBook;orderedResults:Ljava/util/List;}
@@ -87,8 +87,8 @@
     * Mapping not found
     */
    public void m_atikfkye() {
-      Map<C_sxzvngst, List<List<C_dsptsoym>>> map = toGroupedMap(this.f_ncbicesk.values());
-      Map<C_loximogs, List<RecipeResultCollection>> map2 = new HashMap();
+      Map<RecipeBookGroup, List<List<C_dsptsoym>>> map = toGroupedMap(this.f_ncbicesk.values());
+      Map<RecipeBookCategory, List<RecipeResultCollection>> map2 = new HashMap();
       Builder<RecipeResultCollection> builder = ImmutableList.builder();
       map.forEach(
          (arg, list) -> map2.put(arg, (List)list.stream().map(RecipeResultCollection::new).peek(builder::add).collect(ImmutableList.toImmutableList()))
@@ -108,12 +108,12 @@
     * @mapping {@literal hashed m_poixgnwv Lnet/minecraft/unmapped/C_sjlfgpfd;m_poixgnwv(Ljava/lang/Iterable;)Ljava/util/Map;}
     * @mapping {@literal named toGroupedMap Lnet/minecraft/client/recipe_book/ClientRecipeBook;toGroupedMap(Ljava/lang/Iterable;)Ljava/util/Map;}
     */
-   private static Map<C_sxzvngst, List<List<C_dsptsoym>>> toGroupedMap(Iterable<C_dsptsoym> recipes) {
-      Map<C_sxzvngst, List<List<C_dsptsoym>>> map = new HashMap();
-      Table<C_sxzvngst, Integer, List<C_dsptsoym>> table = HashBasedTable.create();
+   private static Map<RecipeBookGroup, List<List<C_dsptsoym>>> toGroupedMap(Iterable<C_dsptsoym> recipes) {
+      Map<RecipeBookGroup, List<List<C_dsptsoym>>> map = new HashMap();
+      Table<RecipeBookGroup, Integer, List<C_dsptsoym>> table = HashBasedTable.create();
 
       for (C_dsptsoym lv : recipes) {
-         C_sxzvngst lv2 = lv.category();
+         RecipeBookGroup lv2 = lv.category();
          OptionalInt optionalInt = lv.group();
          if (optionalInt.isEmpty()) {
             ((List)map.computeIfAbsent(lv2, arg -> new ArrayList())).add(List.of(lv));
@@ -142,9 +142,9 @@
 
    /**
     * @mapping {@literal hashed m_wjyokyzz Lnet/minecraft/unmapped/C_sjlfgpfd;m_wjyokyzz(Lnet/minecraft/unmapped/C_loximogs;)Ljava/util/List;}
-    * @mapping {@literal named getResultsForGroup Lnet/minecraft/client/recipe_book/ClientRecipeBook;getResultsForGroup(Lnet/minecraft/unmapped/C_loximogs;)Ljava/util/List;}
+    * @mapping {@literal named getResultsForGroup Lnet/minecraft/client/recipe_book/ClientRecipeBook;getResultsForGroup(Lnet/minecraft/recipe/book/RecipeBookCategory;)Ljava/util/List;}
     */
-   public List<RecipeResultCollection> getResultsForGroup(C_loximogs key) {
+   public List<RecipeResultCollection> getResultsForGroup(RecipeBookCategory key) {
       return (List<RecipeResultCollection>)this.resultsByGroup.getOrDefault(key, Collections.emptyList());
    }
 }
diff -bur namedTargetSrc/net/minecraft/client/toast/RecipeToast.java namedSrc/net/minecraft/client/toast/RecipeToast.java
--- namedTargetSrc/net/minecraft/client/toast/RecipeToast.java	2024-10-07 17:15:15.751635607 +0000
+++ namedSrc/net/minecraft/client/toast/RecipeToast.java	2024-10-07 17:14:07.481684069 +0000
@@ -8,9 +8,9 @@
 import net.minecraft.client.gui.GuiGraphics;
 import net.minecraft.client.render.RenderLayer;
 import net.minecraft.item.ItemStack;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.text.Text;
 import net.minecraft.unmapped.C_cmucrpkc;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_vhhfbyhp;
 import net.minecraft.util.Identifier;
 
@@ -133,9 +133,9 @@
          arg.m_ifuynxvc(lv);
       }
 
-      C_lahbbtfn.C_ozrotgvv lv2 = C_lahbbtfn.C_ozrotgvv.m_tooywucm(arg.m_gqhkcxmt().world);
-      ItemStack lv3 = arg2.craftingStation().m_hzkpthfi(lv2);
-      ItemStack lv4 = arg2.result().m_hzkpthfi(lv2);
+      SlotDisplay.ResolutionContext lv2 = SlotDisplay.ResolutionContext.create(arg.m_gqhkcxmt().world);
+      ItemStack lv3 = arg2.craftingStation().resolveFirstStack(lv2);
+      ItemStack lv4 = arg2.result().resolveFirstStack(lv2);
       lv.addRecipes(lv3, lv4);
    }
 
diff -bur namedTargetSrc/net/minecraft/data/server/recipe/ShapedRecipeJsonFactory.java namedSrc/net/minecraft/data/server/recipe/ShapedRecipeJsonFactory.java
--- namedTargetSrc/net/minecraft/data/server/recipe/ShapedRecipeJsonFactory.java	2024-10-07 17:15:15.702636353 +0000
+++ namedSrc/net/minecraft/data/server/recipe/ShapedRecipeJsonFactory.java	2024-10-07 17:14:07.407685195 +0000
@@ -107,7 +107,7 @@
     * @mapping {@literal named ingredient Lnet/minecraft/data/server/recipe/ShapedRecipeJsonFactory;ingredient(Ljava/lang/Character;Lnet/minecraft/registry/tag/TagKey;)Lnet/minecraft/data/server/recipe/ShapedRecipeJsonFactory;}
     */
    public ShapedRecipeJsonFactory ingredient(Character c, TagKey<Item> ingredient) {
-      return this.ingredient(c, Ingredient.m_owdzpelq(this.f_gcyzwvkp.getTagOrThrow(ingredient)));
+      return this.ingredient(c, Ingredient.ofItems(this.f_gcyzwvkp.getTagOrThrow(ingredient)));
    }
 
    /**
@@ -115,7 +115,7 @@
     * @mapping {@literal named ingredient Lnet/minecraft/data/server/recipe/ShapedRecipeJsonFactory;ingredient(Ljava/lang/Character;Lnet/minecraft/item/ItemConvertible;)Lnet/minecraft/data/server/recipe/ShapedRecipeJsonFactory;}
     */
    public ShapedRecipeJsonFactory ingredient(Character c, ItemConvertible ingredientProvider) {
-      return this.ingredient(c, Ingredient.m_xqanmytq(ingredientProvider));
+      return this.ingredient(c, Ingredient.ofItem(ingredientProvider));
    }
 
    /**
diff -bur namedTargetSrc/net/minecraft/data/server/recipe/ShapelessRecipeJsonFactory.java namedSrc/net/minecraft/data/server/recipe/ShapelessRecipeJsonFactory.java
--- namedTargetSrc/net/minecraft/data/server/recipe/ShapelessRecipeJsonFactory.java	2024-10-07 17:15:15.712636201 +0000
+++ namedSrc/net/minecraft/data/server/recipe/ShapelessRecipeJsonFactory.java	2024-10-07 17:14:07.420684997 +0000
@@ -97,7 +97,7 @@
     * @mapping {@literal named ingredient Lnet/minecraft/data/server/recipe/ShapelessRecipeJsonFactory;ingredient(Lnet/minecraft/registry/tag/TagKey;)Lnet/minecraft/data/server/recipe/ShapelessRecipeJsonFactory;}
     */
    public ShapelessRecipeJsonFactory ingredient(TagKey<Item> tag) {
-      return this.ingredient(Ingredient.m_owdzpelq(this.f_xwkmsswd.getTagOrThrow(tag)));
+      return this.ingredient(Ingredient.ofItems(this.f_xwkmsswd.getTagOrThrow(tag)));
    }
 
    /**
@@ -114,7 +114,7 @@
     */
    public ShapelessRecipeJsonFactory ingredient(ItemConvertible item, int amount) {
       for (int j = 0; j < amount; j++) {
-         this.ingredient(Ingredient.m_xqanmytq(item));
+         this.ingredient(Ingredient.ofItem(item));
       }
 
       return this;
diff -bur namedTargetSrc/net/minecraft/data/server/RecipesProvider.java namedSrc/net/minecraft/data/server/RecipesProvider.java
--- namedTargetSrc/net/minecraft/data/server/RecipesProvider.java	2024-10-07 17:15:15.835634327 +0000
+++ namedSrc/net/minecraft/data/server/RecipesProvider.java	2024-10-07 17:14:07.586682473 +0000
@@ -85,26 +85,21 @@
     * @mapping {@literal named VARIANT_FACTORIES Lnet/minecraft/data/server/RecipesProvider;VARIANT_FACTORIES:Ljava/util/Map;}
     */
    private static final Map<BlockFamily.Variant, RecipesProvider.C_tavibkqh> VARIANT_FACTORIES = ImmutableMap.<BlockFamily.Variant, RecipesProvider.C_tavibkqh>builder()
-      .put(BlockFamily.Variant.BUTTON, (arg, arg2, arg3) -> arg.createTransmutationRecipe(arg2, Ingredient.m_xqanmytq(arg3)))
-      .put(BlockFamily.Variant.CHISELED, (arg, arg2, arg3) -> arg.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, arg2, Ingredient.m_xqanmytq(arg3)))
-      .put(BlockFamily.Variant.CUT, (arg, output, input) -> arg.createCutCopperRecipe(RecipeCategory.BUILDING_BLOCKS, output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.DOOR, (arg, output, input) -> arg.createDoorRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.CUSTOM_FENCE, (arg, output, input) -> arg.createFenceRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.FENCE, (arg, output, input) -> arg.createFenceRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.CUSTOM_FENCE_GATE, (arg, output, input) -> arg.createFenceGateRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.FENCE_GATE, (arg, output, input) -> arg.createFenceGateRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.SIGN, (arg, output, input) -> arg.createSignRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.SLAB, (arg, output, input) -> arg.createSlabRecipe(RecipeCategory.BUILDING_BLOCKS, output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.STAIRS, (arg, output, input) -> arg.createStairsRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(
-         BlockFamily.Variant.PRESSURE_PLATE,
-         (arg, output, input) -> arg.createPressurePlateRecipe(RecipeCategory.REDSTONE, output, Ingredient.m_xqanmytq(input))
-      )
-      .put(
-         BlockFamily.Variant.POLISHED, (arg, output, input) -> arg.createCondensingRecipe(RecipeCategory.BUILDING_BLOCKS, output, Ingredient.m_xqanmytq(input))
-      )
-      .put(BlockFamily.Variant.TRAPDOOR, (arg, output, input) -> arg.createTrapdoorRecipe(output, Ingredient.m_xqanmytq(input)))
-      .put(BlockFamily.Variant.WALL, (arg, output, input) -> arg.getWallRecipe(RecipeCategory.DECORATIONS, output, Ingredient.m_xqanmytq(input)))
+      .put(BlockFamily.Variant.BUTTON, (arg, arg2, arg3) -> arg.createTransmutationRecipe(arg2, Ingredient.ofItem(arg3)))
+      .put(BlockFamily.Variant.CHISELED, (arg, arg2, arg3) -> arg.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, arg2, Ingredient.ofItem(arg3)))
+      .put(BlockFamily.Variant.CUT, (arg, output, input) -> arg.createCutCopperRecipe(RecipeCategory.BUILDING_BLOCKS, output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.DOOR, (arg, output, input) -> arg.createDoorRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.CUSTOM_FENCE, (arg, output, input) -> arg.createFenceRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.FENCE, (arg, output, input) -> arg.createFenceRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.CUSTOM_FENCE_GATE, (arg, output, input) -> arg.createFenceGateRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.FENCE_GATE, (arg, output, input) -> arg.createFenceGateRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.SIGN, (arg, output, input) -> arg.createSignRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.SLAB, (arg, output, input) -> arg.createSlabRecipe(RecipeCategory.BUILDING_BLOCKS, output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.STAIRS, (arg, output, input) -> arg.createStairsRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.PRESSURE_PLATE, (arg, output, input) -> arg.createPressurePlateRecipe(RecipeCategory.REDSTONE, output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.POLISHED, (arg, output, input) -> arg.createCondensingRecipe(RecipeCategory.BUILDING_BLOCKS, output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.TRAPDOOR, (arg, output, input) -> arg.createTrapdoorRecipe(output, Ingredient.ofItem(input)))
+      .put(BlockFamily.Variant.WALL, (arg, output, input) -> arg.getWallRecipe(RecipeCategory.DECORATIONS, output, Ingredient.ofItem(input)))
       .build();
 
    /**
@@ -182,7 +177,7 @@
       String baseIdString
    ) {
       for (ItemConvertible lv : inputs) {
-         CookingRecipeJsonFactory.create(Ingredient.m_xqanmytq(lv), category, output, experience, cookingTime, serializer, recipe)
+         CookingRecipeJsonFactory.create(Ingredient.ofItem(lv), category, output, experience, cookingTime, serializer, recipe)
             .group(group)
             .criterion(hasItem(lv), this.conditionsFromItem(lv))
             .offerTo(this.exporter, getItemPath(output) + baseIdString + "_" + getItemPath(lv));
@@ -195,8 +190,8 @@
     */
    protected void offerNetheriteUpgradeRecipe(Item output, RecipeCategory category, Item input) {
       TransformSmithingRecipeJsonFactory.create(
-            Ingredient.m_xqanmytq(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE),
-            Ingredient.m_xqanmytq(output),
+            Ingredient.ofItem(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE),
+            Ingredient.ofItem(output),
             this.m_gckzgpoa(ItemTags.NETHERITE_TOOL_MATERIALS),
             category,
             input
@@ -211,7 +206,7 @@
     */
    protected void offerTrimSmithingRecipe(Item template, RegistryKey<Recipe<?>> arg2) {
       TrimSmithingRecipeJsonFactory.create(
-            Ingredient.m_xqanmytq(template), this.m_gckzgpoa(ItemTags.TRIMMABLE_ARMOR), this.m_gckzgpoa(ItemTags.TRIM_MATERIALS), RecipeCategory.MISC
+            Ingredient.ofItem(template), this.m_gckzgpoa(ItemTags.TRIMMABLE_ARMOR), this.m_gckzgpoa(ItemTags.TRIM_MATERIALS), RecipeCategory.MISC
          )
          .criterion("has_smithing_trim_template", this.conditionsFromItem(template))
          .offerTo(this.exporter, arg2);
@@ -350,7 +345,7 @@
     * @mapping {@literal named createPressurePlateRecipe Lnet/minecraft/data/server/RecipesProvider;createPressurePlateRecipe(Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V}
     */
    protected void createPressurePlateRecipe(ItemConvertible output, ItemConvertible input) {
-      this.createPressurePlateRecipe(RecipeCategory.REDSTONE, output, Ingredient.m_xqanmytq(input))
+      this.createPressurePlateRecipe(RecipeCategory.REDSTONE, output, Ingredient.ofItem(input))
          .criterion(hasItem(input), this.conditionsFromItem(input))
          .offerTo(this.exporter);
    }
@@ -368,7 +363,7 @@
     * @mapping {@literal named offerSlabRecipe Lnet/minecraft/data/server/RecipesProvider;offerSlabRecipe(Lnet/minecraft/recipe/RecipeCategory;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V}
     */
    protected void offerSlabRecipe(RecipeCategory category, ItemConvertible output, ItemConvertible input) {
-      this.createSlabRecipe(category, output, Ingredient.m_xqanmytq(input)).criterion(hasItem(input), this.conditionsFromItem(input)).offerTo(this.exporter);
+      this.createSlabRecipe(category, output, Ingredient.ofItem(input)).criterion(hasItem(input), this.conditionsFromItem(input)).offerTo(this.exporter);
    }
 
    /**
@@ -594,7 +589,7 @@
     * @mapping {@literal named offerWallRecipe Lnet/minecraft/data/server/RecipesProvider;offerWallRecipe(Lnet/minecraft/recipe/RecipeCategory;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V}
     */
    protected void offerWallRecipe(RecipeCategory category, ItemConvertible output, ItemConvertible input) {
-      this.getWallRecipe(category, output, Ingredient.m_xqanmytq(input)).criterion(hasItem(input), this.conditionsFromItem(input)).offerTo(this.exporter);
+      this.getWallRecipe(category, output, Ingredient.ofItem(input)).criterion(hasItem(input), this.conditionsFromItem(input)).offerTo(this.exporter);
    }
 
    /**
@@ -610,9 +605,7 @@
     * @mapping {@literal named offerPolishedStoneRecipe Lnet/minecraft/data/server/RecipesProvider;offerPolishedStoneRecipe(Lnet/minecraft/recipe/RecipeCategory;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V}
     */
    protected void offerPolishedStoneRecipe(RecipeCategory category, ItemConvertible output, ItemConvertible input) {
-      this.createCondensingRecipe(category, output, Ingredient.m_xqanmytq(input))
-         .criterion(hasItem(input), this.conditionsFromItem(input))
-         .offerTo(this.exporter);
+      this.createCondensingRecipe(category, output, Ingredient.ofItem(input)).criterion(hasItem(input), this.conditionsFromItem(input)).offerTo(this.exporter);
    }
 
    /**
@@ -628,9 +621,7 @@
     * @mapping {@literal named offerCutCopperRecipe Lnet/minecraft/data/server/RecipesProvider;offerCutCopperRecipe(Lnet/minecraft/recipe/RecipeCategory;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V}
     */
    protected void offerCutCopperRecipe(RecipeCategory category, ItemConvertible output, ItemConvertible input) {
-      this.createCutCopperRecipe(category, output, Ingredient.m_xqanmytq(input))
-         .criterion(hasItem(input), this.conditionsFromItem(input))
-         .offerTo(this.exporter);
+      this.createCutCopperRecipe(category, output, Ingredient.ofItem(input)).criterion(hasItem(input), this.conditionsFromItem(input)).offerTo(this.exporter);
    }
 
    /**
@@ -646,7 +637,7 @@
     * @mapping {@literal named offerChiseledBlockRecipe Lnet/minecraft/data/server/RecipesProvider;offerChiseledBlockRecipe(Lnet/minecraft/recipe/RecipeCategory;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V}
     */
    protected void offerChiseledBlockRecipe(RecipeCategory category, ItemConvertible output, ItemConvertible input) {
-      this.createChiseledBlockRecipe(category, output, Ingredient.m_xqanmytq(input))
+      this.createChiseledBlockRecipe(category, output, Ingredient.ofItem(input))
          .criterion(hasItem(input), this.conditionsFromItem(input))
          .offerTo(this.exporter);
    }
@@ -685,7 +676,7 @@
     * @mapping {@literal named m_vxidcwfd Lnet/minecraft/data/server/RecipesProvider;m_vxidcwfd(Lnet/minecraft/recipe/RecipeCategory;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;I)V}
     */
    protected void m_vxidcwfd(RecipeCategory category, ItemConvertible arg2, ItemConvertible arg3, int count) {
-      SingleItemRecipeJsonFactory.createStonecuttingRecipe(Ingredient.m_xqanmytq(arg3), category, arg2, count)
+      SingleItemRecipeJsonFactory.createStonecuttingRecipe(Ingredient.ofItem(arg3), category, arg2, count)
          .criterion(hasItem(arg3), this.conditionsFromItem(arg3))
          .offerTo(this.exporter, convertBetween(arg2, arg3) + "_stonecutting");
    }
@@ -697,7 +688,7 @@
     * @mapping {@literal named offerCrackingRecipe Lnet/minecraft/data/server/RecipesProvider;offerCrackingRecipe(Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V}
     */
    private void offerCrackingRecipe(ItemConvertible output, ItemConvertible input) {
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(input), RecipeCategory.BUILDING_BLOCKS, output, 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(input), RecipeCategory.BUILDING_BLOCKS, output, 0.1F, 200)
          .criterion(hasItem(input), this.conditionsFromItem(input))
          .offerTo(this.exporter);
    }
@@ -829,7 +820,7 @@
       ItemConvertible output,
       float experience
    ) {
-      CookingRecipeJsonFactory.create(Ingredient.m_xqanmytq(input), RecipeCategory.FOOD, output, experience, cookingTime, serializer, recipe)
+      CookingRecipeJsonFactory.create(Ingredient.ofItem(input), RecipeCategory.FOOD, output, experience, cookingTime, serializer, recipe)
          .criterion(hasItem(input), this.conditionsFromItem(input))
          .offerTo(this.exporter, getItemPath(output) + "_from_" + cooker);
    }
@@ -1056,7 +1047,7 @@
     * @mapping {@literal named m_gckzgpoa Lnet/minecraft/data/server/RecipesProvider;m_gckzgpoa(Lnet/minecraft/registry/tag/TagKey;)Lnet/minecraft/recipe/Ingredient;}
     */
    protected Ingredient m_gckzgpoa(TagKey<Item> tag) {
-      return Ingredient.m_owdzpelq(this.f_vvimmxmt.getTagOrThrow(tag));
+      return Ingredient.ofItems(this.f_vvimmxmt.getTagOrThrow(tag));
    }
 
    /**

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

View the diff here (2/3):
diff -bur namedTargetSrc/net/minecraft/data/server/VanillaRecipesProvider.java namedSrc/net/minecraft/data/server/VanillaRecipesProvider.java
--- namedTargetSrc/net/minecraft/data/server/VanillaRecipesProvider.java	2024-10-07 17:15:15.765635393 +0000
+++ namedSrc/net/minecraft/data/server/VanillaRecipesProvider.java	2024-10-07 17:14:07.504683720 +0000
@@ -625,12 +625,12 @@
       this.offerBoatWithChestRecipe(Items.OAK_CHEST_BOAT, Items.OAK_BOAT);
       this.offerBoatWithChestRecipe(Items.SPRUCE_CHEST_BOAT, Items.SPRUCE_BOAT);
       this.offerBoatWithChestRecipe(Items.MANGROVE_CHEST_BOAT, Items.MANGROVE_BOAT);
-      this.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_QUARTZ_BLOCK, Ingredient.m_xqanmytq(Blocks.QUARTZ_SLAB))
+      this.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_QUARTZ_BLOCK, Ingredient.ofItem(Blocks.QUARTZ_SLAB))
          .criterion("has_chiseled_quartz_block", this.conditionsFromItem(Blocks.CHISELED_QUARTZ_BLOCK))
          .criterion("has_quartz_block", this.conditionsFromItem(Blocks.QUARTZ_BLOCK))
          .criterion("has_quartz_pillar", this.conditionsFromItem(Blocks.QUARTZ_PILLAR))
          .offerTo(this.exporter);
-      this.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_STONE_BRICKS, Ingredient.m_xqanmytq(Blocks.STONE_BRICK_SLAB))
+      this.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_STONE_BRICKS, Ingredient.ofItem(Blocks.STONE_BRICK_SLAB))
          .criterion("has_tag", this.conditionsFromTag(ItemTags.STONE_BRICKS))
          .offerTo(this.exporter);
       this.offerTwoByTwoCompactingRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.CLAY, Items.CLAY_BALL);
@@ -699,7 +699,7 @@
          .pattern("##")
          .criterion("has_string", this.conditionsFromItem(Items.STRING))
          .offerTo(this.exporter);
-      this.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_RED_SANDSTONE, Ingredient.m_xqanmytq(Blocks.RED_SANDSTONE_SLAB))
+      this.createChiseledBlockRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_RED_SANDSTONE, Ingredient.ofItem(Blocks.RED_SANDSTONE_SLAB))
          .criterion("has_red_sandstone", this.conditionsFromItem(Blocks.RED_SANDSTONE))
          .criterion("has_chiseled_red_sandstone", this.conditionsFromItem(Blocks.CHISELED_RED_SANDSTONE))
          .criterion("has_cut_red_sandstone", this.conditionsFromItem(Blocks.CUT_RED_SANDSTONE))
@@ -1126,7 +1126,7 @@
          .pattern("XXX")
          .criterion("has_iron_ingot", this.conditionsFromItem(Items.IRON_INGOT))
          .offerTo(this.exporter);
-      this.createDoorRecipe(Blocks.IRON_DOOR, Ingredient.m_xqanmytq(Items.IRON_INGOT))
+      this.createDoorRecipe(Blocks.IRON_DOOR, Ingredient.ofItem(Items.IRON_INGOT))
          .criterion(hasItem(Items.IRON_INGOT), this.conditionsFromItem(Items.IRON_INGOT))
          .offerTo(this.exporter);
       this.m_hscxseig(RecipeCategory.COMBAT, Items.IRON_HELMET)
@@ -1722,10 +1722,10 @@
          .pattern(" #")
          .criterion("has_cobblestone", this.conditionsFromTag(ItemTags.STONE_TOOL_MATERIALS))
          .offerTo(this.exporter);
-      this.createSlabRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_SLAB, Ingredient.m_xqanmytq(Blocks.STONE_BRICKS))
+      this.createSlabRecipe(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_SLAB, Ingredient.ofItem(Blocks.STONE_BRICKS))
          .criterion("has_stone_bricks", this.conditionsFromTag(ItemTags.STONE_BRICKS))
          .offerTo(this.exporter);
-      this.createStairsRecipe(Blocks.STONE_BRICK_STAIRS, Ingredient.m_xqanmytq(Blocks.STONE_BRICKS))
+      this.createStairsRecipe(Blocks.STONE_BRICK_STAIRS, Ingredient.ofItem(Blocks.STONE_BRICKS))
          .criterion("has_stone_bricks", this.conditionsFromTag(ItemTags.STONE_BRICKS))
          .offerTo(this.exporter);
       this.m_hscxseig(RecipeCategory.TOOLS, Items.STONE_HOE)
@@ -2095,40 +2095,40 @@
       ComplexRecipeJsonFactory.create(RepairItemRecipe::new).offerTo(this.exporter, "repair_item");
       ComplexRecipeJsonFactory.create(ShieldDecorationRecipe::new).offerTo(this.exporter, "shield_decoration");
       ComplexRecipeJsonFactory.create(TippedArrowRecipe::new).offerTo(this.exporter, "tipped_arrow");
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.POTATO), RecipeCategory.FOOD, Items.BAKED_POTATO, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.POTATO), RecipeCategory.FOOD, Items.BAKED_POTATO, 0.35F, 200)
          .criterion("has_potato", this.conditionsFromItem(Items.POTATO))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.CLAY_BALL), RecipeCategory.MISC, Items.BRICK, 0.3F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.CLAY_BALL), RecipeCategory.MISC, Items.BRICK, 0.3F, 200)
          .criterion("has_clay_ball", this.conditionsFromItem(Items.CLAY_BALL))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(this.m_gckzgpoa(ItemTags.LOGS_THAT_BURN), RecipeCategory.MISC, Items.CHARCOAL, 0.15F, 200)
          .criterion("has_log", this.conditionsFromTag(ItemTags.LOGS_THAT_BURN))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.CHORUS_FRUIT), RecipeCategory.MISC, Items.POPPED_CHORUS_FRUIT, 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.CHORUS_FRUIT), RecipeCategory.MISC, Items.POPPED_CHORUS_FRUIT, 0.1F, 200)
          .criterion("has_chorus_fruit", this.conditionsFromItem(Items.CHORUS_FRUIT))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.BEEF), RecipeCategory.FOOD, Items.COOKED_BEEF, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.BEEF), RecipeCategory.FOOD, Items.COOKED_BEEF, 0.35F, 200)
          .criterion("has_beef", this.conditionsFromItem(Items.BEEF))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.CHICKEN), RecipeCategory.FOOD, Items.COOKED_CHICKEN, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.CHICKEN), RecipeCategory.FOOD, Items.COOKED_CHICKEN, 0.35F, 200)
          .criterion("has_chicken", this.conditionsFromItem(Items.CHICKEN))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.COD), RecipeCategory.FOOD, Items.COOKED_COD, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.COD), RecipeCategory.FOOD, Items.COOKED_COD, 0.35F, 200)
          .criterion("has_cod", this.conditionsFromItem(Items.COD))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.KELP), RecipeCategory.FOOD, Items.DRIED_KELP, 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.KELP), RecipeCategory.FOOD, Items.DRIED_KELP, 0.1F, 200)
          .criterion("has_kelp", this.conditionsFromItem(Blocks.KELP))
          .offerTo(this.exporter, getSmeltingItemPath(Items.DRIED_KELP));
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.SALMON), RecipeCategory.FOOD, Items.COOKED_SALMON, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.SALMON), RecipeCategory.FOOD, Items.COOKED_SALMON, 0.35F, 200)
          .criterion("has_salmon", this.conditionsFromItem(Items.SALMON))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.MUTTON), RecipeCategory.FOOD, Items.COOKED_MUTTON, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.MUTTON), RecipeCategory.FOOD, Items.COOKED_MUTTON, 0.35F, 200)
          .criterion("has_mutton", this.conditionsFromItem(Items.MUTTON))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.PORKCHOP), RecipeCategory.FOOD, Items.COOKED_PORKCHOP, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.PORKCHOP), RecipeCategory.FOOD, Items.COOKED_PORKCHOP, 0.35F, 200)
          .criterion("has_porkchop", this.conditionsFromItem(Items.PORKCHOP))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Items.RABBIT), RecipeCategory.FOOD, Items.COOKED_RABBIT, 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Items.RABBIT), RecipeCategory.FOOD, Items.COOKED_RABBIT, 0.35F, 200)
          .criterion("has_rabbit", this.conditionsFromItem(Items.RABBIT))
          .offerTo(this.exporter);
       this.offerSmelting(COAL_ORES, RecipeCategory.MISC, Items.COAL, 0.1F, 200, "coal");
@@ -2145,10 +2145,10 @@
       CookingRecipeJsonFactory.createSmelting(this.m_gckzgpoa(ItemTags.SMELTS_TO_GLASS), RecipeCategory.BUILDING_BLOCKS, Blocks.GLASS.asItem(), 0.1F, 200)
          .criterion("has_smelts_to_glass", this.conditionsFromTag(ItemTags.SMELTS_TO_GLASS))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.SEA_PICKLE), RecipeCategory.MISC, Items.LIME_DYE, 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.SEA_PICKLE), RecipeCategory.MISC, Items.LIME_DYE, 0.1F, 200)
          .criterion("has_sea_pickle", this.conditionsFromItem(Blocks.SEA_PICKLE))
          .offerTo(this.exporter, getSmeltingItemPath(Items.LIME_DYE));
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.CACTUS.asItem()), RecipeCategory.MISC, Items.GREEN_DYE, 1.0F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.CACTUS.asItem()), RecipeCategory.MISC, Items.GREEN_DYE, 1.0F, 200)
          .criterion("has_cactus", this.conditionsFromItem(Blocks.CACTUS))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
@@ -2217,131 +2217,127 @@
          .criterion("has_chainmail_leggings", this.conditionsFromItem(Items.CHAINMAIL_LEGGINGS))
          .criterion("has_chainmail_boots", this.conditionsFromItem(Items.CHAINMAIL_BOOTS))
          .offerTo(this.exporter, getSmeltingItemPath(Items.IRON_NUGGET));
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.CLAY), RecipeCategory.BUILDING_BLOCKS, Blocks.TERRACOTTA.asItem(), 0.35F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.CLAY), RecipeCategory.BUILDING_BLOCKS, Blocks.TERRACOTTA.asItem(), 0.35F, 200)
          .criterion("has_clay_block", this.conditionsFromItem(Blocks.CLAY))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.NETHERRACK), RecipeCategory.MISC, Items.NETHER_BRICK, 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.NETHERRACK), RecipeCategory.MISC, Items.NETHER_BRICK, 0.1F, 200)
          .criterion("has_netherrack", this.conditionsFromItem(Blocks.NETHERRACK))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.NETHER_QUARTZ_ORE), RecipeCategory.MISC, Items.QUARTZ, 0.2F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.NETHER_QUARTZ_ORE), RecipeCategory.MISC, Items.QUARTZ, 0.2F, 200)
          .criterion("has_nether_quartz_ore", this.conditionsFromItem(Blocks.NETHER_QUARTZ_ORE))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.WET_SPONGE), RecipeCategory.BUILDING_BLOCKS, Blocks.SPONGE.asItem(), 0.15F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.WET_SPONGE), RecipeCategory.BUILDING_BLOCKS, Blocks.SPONGE.asItem(), 0.15F, 200)
          .criterion("has_wet_sponge", this.conditionsFromItem(Blocks.WET_SPONGE))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.COBBLESTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.STONE.asItem(), 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.COBBLESTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.STONE.asItem(), 0.1F, 200)
          .criterion("has_cobblestone", this.conditionsFromItem(Blocks.COBBLESTONE))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.STONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_STONE.asItem(), 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.STONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_STONE.asItem(), 0.1F, 200)
          .criterion("has_stone", this.conditionsFromItem(Blocks.STONE))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.SANDSTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_SANDSTONE.asItem(), 0.1F, 200
-         )
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.SANDSTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_SANDSTONE.asItem(), 0.1F, 200)
          .criterion("has_sandstone", this.conditionsFromItem(Blocks.SANDSTONE))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.RED_SANDSTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_RED_SANDSTONE.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.RED_SANDSTONE), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_RED_SANDSTONE.asItem(), 0.1F, 200
          )
          .criterion("has_red_sandstone", this.conditionsFromItem(Blocks.RED_SANDSTONE))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.QUARTZ_BLOCK), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_QUARTZ.asItem(), 0.1F, 200
-         )
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.QUARTZ_BLOCK), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_QUARTZ.asItem(), 0.1F, 200)
          .criterion("has_quartz_block", this.conditionsFromItem(Blocks.QUARTZ_BLOCK))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.CRACKED_STONE_BRICKS.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.CRACKED_STONE_BRICKS.asItem(), 0.1F, 200
          )
          .criterion("has_stone_bricks", this.conditionsFromItem(Blocks.STONE_BRICKS))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.BLACK_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BLACK_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.BLACK_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BLACK_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_black_terracotta", this.conditionsFromItem(Blocks.BLACK_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.BLUE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BLUE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.BLUE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BLUE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_blue_terracotta", this.conditionsFromItem(Blocks.BLUE_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.BROWN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BROWN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.BROWN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.BROWN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_brown_terracotta", this.conditionsFromItem(Blocks.BROWN_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.CYAN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.CYAN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.CYAN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.CYAN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_cyan_terracotta", this.conditionsFromItem(Blocks.CYAN_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.GRAY_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.GRAY_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.GRAY_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.GRAY_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_gray_terracotta", this.conditionsFromItem(Blocks.GRAY_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.GREEN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.GREEN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.GREEN_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.GREEN_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_green_terracotta", this.conditionsFromItem(Blocks.GREEN_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.LIGHT_BLUE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIGHT_BLUE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.LIGHT_BLUE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIGHT_BLUE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_light_blue_terracotta", this.conditionsFromItem(Blocks.LIGHT_BLUE_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.LIGHT_GRAY_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIGHT_GRAY_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.LIGHT_GRAY_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIGHT_GRAY_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_light_gray_terracotta", this.conditionsFromItem(Blocks.LIGHT_GRAY_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.LIME_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIME_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.LIME_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.LIME_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_lime_terracotta", this.conditionsFromItem(Blocks.LIME_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.MAGENTA_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.MAGENTA_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.MAGENTA_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.MAGENTA_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_magenta_terracotta", this.conditionsFromItem(Blocks.MAGENTA_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.ORANGE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.ORANGE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.ORANGE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.ORANGE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_orange_terracotta", this.conditionsFromItem(Blocks.ORANGE_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.PINK_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.PINK_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.PINK_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.PINK_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_pink_terracotta", this.conditionsFromItem(Blocks.PINK_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.PURPLE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.PURPLE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.PURPLE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.PURPLE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_purple_terracotta", this.conditionsFromItem(Blocks.PURPLE_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.RED_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.RED_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.RED_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.RED_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_red_terracotta", this.conditionsFromItem(Blocks.RED_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.WHITE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.WHITE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.WHITE_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.WHITE_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_white_terracotta", this.conditionsFromItem(Blocks.WHITE_TERRACOTTA))
          .offerTo(this.exporter);
       CookingRecipeJsonFactory.createSmelting(
-            Ingredient.m_xqanmytq(Blocks.YELLOW_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.YELLOW_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
+            Ingredient.ofItem(Blocks.YELLOW_TERRACOTTA), RecipeCategory.DECORATIONS, Blocks.YELLOW_GLAZED_TERRACOTTA.asItem(), 0.1F, 200
          )
          .criterion("has_yellow_terracotta", this.conditionsFromItem(Blocks.YELLOW_TERRACOTTA))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.ANCIENT_DEBRIS), RecipeCategory.MISC, Items.NETHERITE_SCRAP, 2.0F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.ANCIENT_DEBRIS), RecipeCategory.MISC, Items.NETHERITE_SCRAP, 2.0F, 200)
          .criterion("has_ancient_debris", this.conditionsFromItem(Blocks.ANCIENT_DEBRIS))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.BASALT), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_BASALT, 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.BASALT), RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_BASALT, 0.1F, 200)
          .criterion("has_basalt", this.conditionsFromItem(Blocks.BASALT))
          .offerTo(this.exporter);
-      CookingRecipeJsonFactory.createSmelting(Ingredient.m_xqanmytq(Blocks.COBBLED_DEEPSLATE), RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE, 0.1F, 200)
+      CookingRecipeJsonFactory.createSmelting(Ingredient.ofItem(Blocks.COBBLED_DEEPSLATE), RecipeCategory.BUILDING_BLOCKS, Blocks.DEEPSLATE, 0.1F, 200)
          .criterion("has_cobbled_deepslate", this.conditionsFromItem(Blocks.COBBLED_DEEPSLATE))
          .offerTo(this.exporter);
       this.offerBlasting(COAL_ORES, RecipeCategory.MISC, Items.COAL, 0.1F, 100, "coal");
@@ -2352,7 +2348,7 @@
       this.offerBlasting(LAPIS_ORES, RecipeCategory.MISC, Items.LAPIS_LAZULI, 0.2F, 100, "lapis_lazuli");
       this.offerBlasting(REDSTONE_ORES, RecipeCategory.REDSTONE, Items.REDSTONE, 0.7F, 100, "redstone");
       this.offerBlasting(EMERALD_ORES, RecipeCategory.MISC, Items.EMERALD, 1.0F, 100, "emerald");
-      CookingRecipeJsonFactory.createBlasting(Ingredient.m_xqanmytq(Blocks.NETHER_QUARTZ_ORE), RecipeCategory.MISC, Items.QUARTZ, 0.2F, 100)
+      CookingRecipeJsonFactory.createBlasting(Ingredient.ofItem(Blocks.NETHER_QUARTZ_ORE), RecipeCategory.MISC, Items.QUARTZ, 0.2F, 100)
          .criterion("has_nether_quartz_ore", this.conditionsFromItem(Blocks.NETHER_QUARTZ_ORE))
          .offerTo(this.exporter, getBlastingItemPath(Items.QUARTZ));
       CookingRecipeJsonFactory.createBlasting(
@@ -2421,7 +2417,7 @@
          .criterion("has_chainmail_leggings", this.conditionsFromItem(Items.CHAINMAIL_LEGGINGS))
          .criterion("has_chainmail_boots", this.conditionsFromItem(Items.CHAINMAIL_BOOTS))
          .offerTo(this.exporter, getBlastingItemPath(Items.IRON_NUGGET));
-      CookingRecipeJsonFactory.createBlasting(Ingredient.m_xqanmytq(Blocks.ANCIENT_DEBRIS), RecipeCategory.MISC, Items.NETHERITE_SCRAP, 2.0F, 100)
+      CookingRecipeJsonFactory.createBlasting(Ingredient.ofItem(Blocks.ANCIENT_DEBRIS), RecipeCategory.MISC, Items.NETHERITE_SCRAP, 2.0F, 100)
          .criterion("has_ancient_debris", this.conditionsFromItem(Blocks.ANCIENT_DEBRIS))
          .offerTo(this.exporter, getBlastingItemPath(Items.NETHERITE_SCRAP));
       this.generateCookingRecipes("smoking", RecipeSerializer.SMOKING, SmokingRecipe::new, 100);
@@ -2432,11 +2428,11 @@
       this.m_vxidcwfd(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_SLAB, Blocks.STONE, 2);
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_STAIRS, Blocks.STONE);
       SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.STONE), RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_STONE_BRICKS
+            Ingredient.ofItem(Blocks.STONE), RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_STONE_BRICKS
          )
          .criterion("has_stone", this.conditionsFromItem(Blocks.STONE))
          .offerTo(this.exporter, "chiseled_stone_bricks_stone_from_stonecutting");
-      SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(Ingredient.m_xqanmytq(Blocks.STONE), RecipeCategory.DECORATIONS, Blocks.STONE_BRICK_WALL)
+      SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(Ingredient.ofItem(Blocks.STONE), RecipeCategory.DECORATIONS, Blocks.STONE_BRICK_WALL)
          .criterion("has_stone", this.conditionsFromItem(Blocks.STONE))
          .offerTo(this.exporter, "stone_brick_walls_from_stone_stonecutting");
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.CUT_SANDSTONE, Blocks.SANDSTONE);
@@ -2453,7 +2449,7 @@
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.RED_SANDSTONE_STAIRS, Blocks.RED_SANDSTONE);
       this.m_hbqrkbsu(RecipeCategory.DECORATIONS, Blocks.RED_SANDSTONE_WALL, Blocks.RED_SANDSTONE);
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.CHISELED_RED_SANDSTONE, Blocks.RED_SANDSTONE);
-      SingleItemRecipeJsonFactory.createStonecuttingRecipe(Ingredient.m_xqanmytq(Blocks.QUARTZ_BLOCK), RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_SLAB, 2)
+      SingleItemRecipeJsonFactory.createStonecuttingRecipe(Ingredient.ofItem(Blocks.QUARTZ_BLOCK), RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_SLAB, 2)
          .criterion("has_quartz_block", this.conditionsFromItem(Blocks.QUARTZ_BLOCK))
          .offerTo(this.exporter, "quartz_slab_from_stonecutting");
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.QUARTZ_STAIRS, Blocks.QUARTZ_BLOCK);
@@ -2466,7 +2462,7 @@
       this.m_vxidcwfd(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_SLAB, Blocks.STONE_BRICKS, 2);
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.STONE_BRICK_STAIRS, Blocks.STONE_BRICKS);
       SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.STONE_BRICK_WALL
+            Ingredient.ofItem(Blocks.STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.STONE_BRICK_WALL
          )
          .criterion("has_stone_bricks", this.conditionsFromItem(Blocks.STONE_BRICKS))
          .offerTo(this.exporter, "stone_brick_wall_from_stone_bricks_stonecutting");
@@ -2491,12 +2487,12 @@
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_STAIRS, Blocks.PRISMARINE);
       this.m_hbqrkbsu(RecipeCategory.DECORATIONS, Blocks.PRISMARINE_WALL, Blocks.PRISMARINE);
       SingleItemRecipeJsonFactory.createStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.PRISMARINE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_BRICK_SLAB, 2
+            Ingredient.ofItem(Blocks.PRISMARINE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_BRICK_SLAB, 2
          )
          .criterion("has_prismarine_brick", this.conditionsFromItem(Blocks.PRISMARINE_BRICKS))
          .offerTo(this.exporter, "prismarine_brick_slab_from_prismarine_stonecutting");
       SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.PRISMARINE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_BRICK_STAIRS
+            Ingredient.ofItem(Blocks.PRISMARINE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.PRISMARINE_BRICK_STAIRS
          )
          .criterion("has_prismarine_brick", this.conditionsFromItem(Blocks.PRISMARINE_BRICKS))
          .offerTo(this.exporter, "prismarine_brick_stairs_from_prismarine_stonecutting");
@@ -2528,17 +2524,17 @@
       this.m_vxidcwfd(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DIORITE_SLAB, Blocks.POLISHED_DIORITE, 2);
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.POLISHED_DIORITE_STAIRS, Blocks.POLISHED_DIORITE);
       SingleItemRecipeJsonFactory.createStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICK_SLAB, 2
+            Ingredient.ofItem(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICK_SLAB, 2
          )
          .criterion("has_mossy_stone_bricks", this.conditionsFromItem(Blocks.MOSSY_STONE_BRICKS))
          .offerTo(this.exporter, "mossy_stone_brick_slab_from_mossy_stone_brick_stonecutting");
       SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICK_STAIRS
+            Ingredient.ofItem(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.MOSSY_STONE_BRICK_STAIRS
          )
          .criterion("has_mossy_stone_bricks", this.conditionsFromItem(Blocks.MOSSY_STONE_BRICKS))
          .offerTo(this.exporter, "mossy_stone_brick_stairs_from_mossy_stone_brick_stonecutting");
       SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.MOSSY_STONE_BRICK_WALL
+            Ingredient.ofItem(Blocks.MOSSY_STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.MOSSY_STONE_BRICK_WALL
          )
          .criterion("has_mossy_stone_bricks", this.conditionsFromItem(Blocks.MOSSY_STONE_BRICKS))
          .offerTo(this.exporter, "mossy_stone_brick_wall_from_mossy_stone_brick_stonecutting");
@@ -2552,17 +2548,17 @@
       this.m_vxidcwfd(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_QUARTZ_SLAB, Blocks.SMOOTH_QUARTZ, 2);
       this.m_hbqrkbsu(RecipeCategory.BUILDING_BLOCKS, Blocks.SMOOTH_QUARTZ_STAIRS, Blocks.SMOOTH_QUARTZ);
       SingleItemRecipeJsonFactory.createStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.END_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_SLAB, 2
+            Ingredient.ofItem(Blocks.END_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_SLAB, 2
          )
          .criterion("has_end_stone_brick", this.conditionsFromItem(Blocks.END_STONE_BRICKS))
          .offerTo(this.exporter, "end_stone_brick_slab_from_end_stone_brick_stonecutting");
       SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.END_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_STAIRS
+            Ingredient.ofItem(Blocks.END_STONE_BRICKS), RecipeCategory.BUILDING_BLOCKS, Blocks.END_STONE_BRICK_STAIRS
          )
          .criterion("has_end_stone_brick", this.conditionsFromItem(Blocks.END_STONE_BRICKS))
          .offerTo(this.exporter, "end_stone_brick_stairs_from_end_stone_brick_stonecutting");
       SingleItemRecipeJsonFactory.createSingleOutputStonecuttingRecipe(
-            Ingredient.m_xqanmytq(Blocks.END_STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.END_STONE_BRICK_WALL
+            Ingredient.ofItem(Blocks.END_STONE_BRICKS), RecipeCategory.DECORATIONS, Blocks.END_STONE_BRICK_WALL
          )
          .criterion("has_end_stone_brick", this.conditionsFromItem(Blocks.END_STONE_BRICKS))
          .offerTo(this.exporter, "end_stone_brick_wall_from_end_stone_brick_stonecutting");
@@ -2836,10 +2832,10 @@
          .criterion("has_breeze_rod", this.conditionsFromItem(Items.BREEZE_ROD))
          .criterion("has_heavy_core", this.conditionsFromItem(Blocks.HEAVY_CORE))
          .offerTo(this.exporter);
-      this.createDoorRecipe(Blocks.COPPER_DOOR, Ingredient.m_xqanmytq(Items.COPPER_INGOT))
+      this.createDoorRecipe(Blocks.COPPER_DOOR, Ingredient.ofItem(Items.COPPER_INGOT))
          .criterion(hasItem(Items.COPPER_INGOT), this.conditionsFromItem(Items.COPPER_INGOT))
          .offerTo(this.exporter);
-      this.createTrapdoorRecipe(Blocks.COPPER_TRAPDOOR, Ingredient.m_xqanmytq(Items.COPPER_INGOT))
+      this.createTrapdoorRecipe(Blocks.COPPER_TRAPDOOR, Ingredient.ofItem(Items.COPPER_INGOT))
          .criterion(hasItem(Items.COPPER_INGOT), this.conditionsFromItem(Items.COPPER_INGOT))
          .offerTo(this.exporter);
       this.m_hscxseig(RecipeCategory.TOOLS, Items.BUNDLE)
@@ -2891,7 +2887,7 @@
       Ingredient lv = this.m_gckzgpoa(ItemTags.SHULKER_BOXES);
 
       for (DyeColor lv2 : DyeColor.values()) {
-         C_qzdslxtp.m_ylegpokw(RecipeCategory.DECORATIONS, lv, Ingredient.m_xqanmytq(DyeItem.byColor(lv2)), ShulkerBoxBlock.get(lv2).asItem())
+         C_qzdslxtp.m_ylegpokw(RecipeCategory.DECORATIONS, lv, Ingredient.ofItem(DyeItem.byColor(lv2)), ShulkerBoxBlock.get(lv2).asItem())
             .group("shulker_box_dye")
             .criterion("has_shulker_box", this.conditionsFromTag(ItemTags.SHULKER_BOXES))
             .offerTo(this.exporter);
@@ -2906,7 +2902,7 @@
 
       for (DyeColor lv2 : DyeColor.values()) {
          DyeItem lv3 = DyeItem.byColor(lv2);
-         C_qzdslxtp.m_ylegpokw(RecipeCategory.TOOLS, lv, Ingredient.m_xqanmytq(lv3), BundleItem.m_optlhaxk(lv2))
+         C_qzdslxtp.m_ylegpokw(RecipeCategory.TOOLS, lv, Ingredient.ofItem(lv3), BundleItem.m_optlhaxk(lv2))
             .group("bundle_dye")
             .criterion(hasItem(lv3), this.conditionsFromItem(lv3))
             .offerTo(this.exporter);
diff -bur namedTargetSrc/net/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket.java namedSrc/net/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket.java
--- namedTargetSrc/net/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket.java	2024-10-07 17:15:15.784635104 +0000
+++ namedSrc/net/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket.java	2024-10-07 17:14:07.537683218 +0000
@@ -6,7 +6,7 @@
 import net.minecraft.network.packet.Packet;
 import net.minecraft.network.packet.PacketType;
 import net.minecraft.network.packet.PlayPacketTypes;
-import net.minecraft.recipe.book.RecipeBookCategory;
+import net.minecraft.recipe.book.RecipeBookType;
 
 /**
  * @mapping {@literal hashed net/minecraft/unmapped/C_czkuzpeu}
@@ -22,9 +22,9 @@
    );
    /**
     * @mapping {@literal hashed f_renchhbv Lnet/minecraft/unmapped/C_czkuzpeu;f_renchhbv:Lnet/minecraft/unmapped/C_mrybqpjh;}
-    * @mapping {@literal named category Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;category:Lnet/minecraft/recipe/book/RecipeBookCategory;}
+    * @mapping {@literal named category Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;category:Lnet/minecraft/recipe/book/RecipeBookType;}
     */
-   private final RecipeBookCategory category;
+   private final RecipeBookType category;
    /**
     * @mapping {@literal hashed f_gvkjqrxh Lnet/minecraft/unmapped/C_czkuzpeu;f_gvkjqrxh:Z}
     * @mapping {@literal named guiOpen Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;guiOpen:Z}
@@ -38,9 +38,9 @@
 
    /**
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_czkuzpeu;<init>(Lnet/minecraft/unmapped/C_mrybqpjh;ZZ)V}
-    * @mapping {@literal named <init> Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;<init>(Lnet/minecraft/recipe/book/RecipeBookCategory;ZZ)V}
+    * @mapping {@literal named <init> Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;<init>(Lnet/minecraft/recipe/book/RecipeBookType;ZZ)V}
     */
-   public RecipeCategoryOptionUpdateC2SPacket(RecipeBookCategory category, boolean guiOpen, boolean filteringCraftable) {
+   public RecipeCategoryOptionUpdateC2SPacket(RecipeBookType category, boolean guiOpen, boolean filteringCraftable) {
       this.category = category;
       this.guiOpen = guiOpen;
       this.filteringCraftable = filteringCraftable;
@@ -51,7 +51,7 @@
     * @mapping {@literal named <init> Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;<init>(Lnet/minecraft/network/PacketByteBuf;)V}
     */
    private RecipeCategoryOptionUpdateC2SPacket(PacketByteBuf buf) {
-      this.category = buf.readEnumConstant(RecipeBookCategory.class);
+      this.category = buf.readEnumConstant(RecipeBookType.class);
       this.guiOpen = buf.readBoolean();
       this.filteringCraftable = buf.readBoolean();
    }
@@ -84,9 +84,9 @@
 
    /**
     * @mapping {@literal hashed m_eozzddoz Lnet/minecraft/unmapped/C_czkuzpeu;m_eozzddoz()Lnet/minecraft/unmapped/C_mrybqpjh;}
-    * @mapping {@literal named getCategory Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;getCategory()Lnet/minecraft/recipe/book/RecipeBookCategory;}
+    * @mapping {@literal named getCategory Lnet/minecraft/network/packet/c2s/play/RecipeCategoryOptionUpdateC2SPacket;getCategory()Lnet/minecraft/recipe/book/RecipeBookType;}
     */
-   public RecipeBookCategory getCategory() {
+   public RecipeBookType getCategory() {
       return this.category;
    }
 
diff -bur namedTargetSrc/net/minecraft/recipe/AbstractCookingRecipe.java namedSrc/net/minecraft/recipe/AbstractCookingRecipe.java
--- namedTargetSrc/net/minecraft/recipe/AbstractCookingRecipe.java	2024-10-07 17:15:15.813634662 +0000
+++ namedSrc/net/minecraft/recipe/AbstractCookingRecipe.java	2024-10-07 17:14:07.564682808 +0000
@@ -9,7 +9,7 @@
 import net.minecraft.network.RegistryByteBuf;
 import net.minecraft.network.codec.PacketCodec;
 import net.minecraft.network.codec.PacketCodecs;
-import net.minecraft.unmapped.C_lahbbtfn;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.unmapped.C_vhhfbyhp;
 import net.minecraft.unmapped.C_wfacxbbm;
 
@@ -58,16 +58,18 @@
    public abstract RecipeType<? extends AbstractCookingRecipe> getType();
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_tmbqodoo Lnet/minecraft/unmapped/C_hpjdwiwu;m_tmbqodoo()F}
+    * @mapping {@literal named getExperience Lnet/minecraft/recipe/AbstractCookingRecipe;getExperience()F}
     */
-   public float m_tmbqodoo() {
+   public float getExperience() {
       return this.experience;
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_sdqrhyci Lnet/minecraft/unmapped/C_hpjdwiwu;m_sdqrhyci()I}
+    * @mapping {@literal named getCookTime Lnet/minecraft/recipe/AbstractCookingRecipe;getCookTime()I}
     */
-   public int m_sdqrhyci() {
+   public int getCookTime() {
       return this.cookTime;
    }
 
@@ -80,9 +82,10 @@
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_iedtbqqy Lnet/minecraft/unmapped/C_hpjdwiwu;m_iedtbqqy()Lnet/minecraft/unmapped/C_vorddnax;}
+    * @mapping {@literal named getWorkstation Lnet/minecraft/recipe/AbstractCookingRecipe;getWorkstation()Lnet/minecraft/item/Item;}
     */
-   protected abstract Item m_iedtbqqy();
+   protected abstract Item getWorkstation();
 
    /**
     * Mapping not found
@@ -91,10 +94,10 @@
    public List<C_vhhfbyhp> m_kwgjnprn() {
       return List.of(
          new C_wfacxbbm(
-            this.m_gmwouxav().m_lqlwthyg(),
-            C_lahbbtfn.C_asnhtjgh.f_kvfeugrf,
-            new C_lahbbtfn.C_twdqwrvw(this.m_xqfftcwo()),
-            new C_lahbbtfn.C_pssneihq(this.m_iedtbqqy())
+            this.m_gmwouxav().getSlotDisplay(),
+            SlotDisplay.FuelSlotDisplay.INSTANCE,
+            new SlotDisplay.StackSlotDisplay(this.m_xqfftcwo()),
+            new SlotDisplay.ItemSlotDisplay(this.getWorkstation())
          )
       );
    }
@@ -122,18 +125,18 @@
       public C_tvshwemp(AbstractCookingRecipe.Factory<T> obj, int i) {
          this.codec = RecordCodecBuilder.mapCodec(
             instance -> instance.group(
-                     Codec.STRING.optionalFieldOf("group", "").forGetter(CuttingRecipe::m_bsknoala),
+                     Codec.STRING.optionalFieldOf("group", "").forGetter(CuttingRecipe::getGroup),
                      CookingCategory.CODEC.fieldOf("category").orElse(CookingCategory.MISC).forGetter(AbstractCookingRecipe::getCategory),
                      Ingredient.ALLOW_EMPTY_CODEC.fieldOf("ingredient").forGetter(CuttingRecipe::m_gmwouxav),
                      ItemStack.f_lpaemjik.fieldOf("result").forGetter(CuttingRecipe::m_xqfftcwo),
-                     Codec.FLOAT.fieldOf("experience").orElse(0.0F).forGetter(AbstractCookingRecipe::m_tmbqodoo),
-                     Codec.INT.fieldOf("cookingtime").orElse(i).forGetter(AbstractCookingRecipe::m_sdqrhyci)
+                     Codec.FLOAT.fieldOf("experience").orElse(0.0F).forGetter(AbstractCookingRecipe::getExperience),
+                     Codec.INT.fieldOf("cookingtime").orElse(i).forGetter(AbstractCookingRecipe::getCookTime)
                   )
                   .apply(instance, obj::create)
          );
          this.packetCodec = PacketCodec.tuple(
             PacketCodecs.STRING,
-            CuttingRecipe::m_bsknoala,
+            CuttingRecipe::getGroup,
             CookingCategory.PACKET_CODEC,
             AbstractCookingRecipe::getCategory,
             Ingredient.PACKET_CODEC,
@@ -141,9 +144,9 @@
             ItemStack.PACKET_CODEC,
             CuttingRecipe::m_xqfftcwo,
             PacketCodecs.FLOAT,
-            AbstractCookingRecipe::m_tmbqodoo,
+            AbstractCookingRecipe::getExperience,
             PacketCodecs.INT,
-            AbstractCookingRecipe::m_sdqrhyci,
+            AbstractCookingRecipe::getCookTime,
             obj::create
          );
       }
diff -bur namedTargetSrc/net/minecraft/recipe/BlastingRecipe.java namedSrc/net/minecraft/recipe/BlastingRecipe.java
--- namedTargetSrc/net/minecraft/recipe/BlastingRecipe.java	2024-10-07 17:15:15.782635134 +0000
+++ namedSrc/net/minecraft/recipe/BlastingRecipe.java	2024-10-07 17:14:07.536683233 +0000
@@ -3,7 +3,7 @@
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.item.Items;
-import net.minecraft.unmapped.C_sxzvngst;
+import net.minecraft.recipe.book.RecipeBookGroup;
 
 /**
  * @mapping {@literal hashed net/minecraft/unmapped/C_ywbgonlm}
@@ -22,7 +22,7 @@
     * Mapping not found
     */
    @Override
-   protected Item m_iedtbqqy() {
+   protected Item getWorkstation() {
       return Items.BLAST_FURNACE;
    }
 
@@ -46,10 +46,10 @@
     * Mapping not found
     */
    @Override
-   public C_sxzvngst m_acqxyxru() {
+   public RecipeBookGroup getRecipeBookCategory() {
       return switch (this.getCategory()) {
-         case BLOCKS -> C_sxzvngst.BLAST_FURNACE_BLOCKS;
-         case FOOD, MISC -> C_sxzvngst.BLAST_FURNACE_MISC;
+         case BLOCKS -> RecipeBookGroup.BLAST_FURNACE_BLOCKS;
+         case FOOD, MISC -> RecipeBookGroup.BLAST_FURNACE_MISC;
       };
    }
 }
diff -bur namedTargetSrc/net/minecraft/recipe/book/RecipeBookCategory.java namedSrc/net/minecraft/recipe/book/RecipeBookCategory.java
--- namedTargetSrc/net/minecraft/recipe/book/RecipeBookCategory.java	2024-10-07 17:15:15.590638060 +0000
+++ namedSrc/net/minecraft/recipe/book/RecipeBookCategory.java	2024-10-07 17:14:07.316686581 +0000
@@ -1,28 +1,8 @@
 package net.minecraft.recipe.book;
 
 /**
- * @mapping {@literal hashed net/minecraft/unmapped/C_mrybqpjh}
+ * @mapping {@literal hashed net/minecraft/unmapped/C_loximogs}
  * @mapping {@literal named net/minecraft/recipe/book/RecipeBookCategory}
  */
-public enum RecipeBookCategory {
-   /**
-    * @mapping {@literal hashed f_xavonozp Lnet/minecraft/unmapped/C_mrybqpjh;f_xavonozp:Lnet/minecraft/unmapped/C_mrybqpjh;}
-    * @mapping {@literal named CRAFTING Lnet/minecraft/recipe/book/RecipeBookCategory;CRAFTING:Lnet/minecraft/recipe/book/RecipeBookCategory;}
-    */
-   CRAFTING,
-   /**
-    * @mapping {@literal hashed f_whucujtw Lnet/minecraft/unmapped/C_mrybqpjh;f_whucujtw:Lnet/minecraft/unmapped/C_mrybqpjh;}
-    * @mapping {@literal named FURNACE Lnet/minecraft/recipe/book/RecipeBookCategory;FURNACE:Lnet/minecraft/recipe/book/RecipeBookCategory;}
-    */
-   FURNACE,
-   /**
-    * @mapping {@literal hashed f_vfpyzmrr Lnet/minecraft/unmapped/C_mrybqpjh;f_vfpyzmrr:Lnet/minecraft/unmapped/C_mrybqpjh;}
-    * @mapping {@literal named BLAST_FURNACE Lnet/minecraft/recipe/book/RecipeBookCategory;BLAST_FURNACE:Lnet/minecraft/recipe/book/RecipeBookCategory;}
-    */
-   BLAST_FURNACE,
-   /**
-    * @mapping {@literal hashed f_ntfqahog Lnet/minecraft/unmapped/C_mrybqpjh;f_ntfqahog:Lnet/minecraft/unmapped/C_mrybqpjh;}
-    * @mapping {@literal named SMOKER Lnet/minecraft/recipe/book/RecipeBookCategory;SMOKER:Lnet/minecraft/recipe/book/RecipeBookCategory;}
-    */
-   SMOKER;
+public interface RecipeBookCategory {
 }
Only in namedSrc/net/minecraft/recipe/book: RecipeBookGroup.java
diff -bur namedTargetSrc/net/minecraft/recipe/book/RecipeBook.java namedSrc/net/minecraft/recipe/book/RecipeBook.java
--- namedTargetSrc/net/minecraft/recipe/book/RecipeBook.java	2024-10-07 17:15:15.728635957 +0000
+++ namedSrc/net/minecraft/recipe/book/RecipeBook.java	2024-10-07 17:14:07.440684693 +0000
@@ -13,33 +13,33 @@
 
    /**
     * @mapping {@literal hashed m_zoagvdwl Lnet/minecraft/unmapped/C_bluodrzq;m_zoagvdwl(Lnet/minecraft/unmapped/C_mrybqpjh;)Z}
-    * @mapping {@literal named isGuiOpen Lnet/minecraft/recipe/book/RecipeBook;isGuiOpen(Lnet/minecraft/recipe/book/RecipeBookCategory;)Z}
+    * @mapping {@literal named isGuiOpen Lnet/minecraft/recipe/book/RecipeBook;isGuiOpen(Lnet/minecraft/recipe/book/RecipeBookType;)Z}
     */
-   public boolean isGuiOpen(RecipeBookCategory category) {
+   public boolean isGuiOpen(RecipeBookType category) {
       return this.options.isGuiOpen(category);
    }
 
    /**
     * @mapping {@literal hashed m_oemftwbg Lnet/minecraft/unmapped/C_bluodrzq;m_oemftwbg(Lnet/minecraft/unmapped/C_mrybqpjh;Z)V}
-    * @mapping {@literal named setGuiOpen Lnet/minecraft/recipe/book/RecipeBook;setGuiOpen(Lnet/minecraft/recipe/book/RecipeBookCategory;Z)V}
+    * @mapping {@literal named setGuiOpen Lnet/minecraft/recipe/book/RecipeBook;setGuiOpen(Lnet/minecraft/recipe/book/RecipeBookType;Z)V}
     */
-   public void setGuiOpen(RecipeBookCategory category, boolean open) {
+   public void setGuiOpen(RecipeBookType category, boolean open) {
       this.options.setGuiOpen(category, open);
    }
 
    /**
     * @mapping {@literal hashed m_sztksdtu Lnet/minecraft/unmapped/C_bluodrzq;m_sztksdtu(Lnet/minecraft/unmapped/C_mrybqpjh;)Z}
-    * @mapping {@literal named m_sztksdtu Lnet/minecraft/recipe/book/RecipeBook;m_sztksdtu(Lnet/minecraft/recipe/book/RecipeBookCategory;)Z}
+    * @mapping {@literal named m_sztksdtu Lnet/minecraft/recipe/book/RecipeBook;m_sztksdtu(Lnet/minecraft/recipe/book/RecipeBookType;)Z}
     */
-   public boolean m_sztksdtu(RecipeBookCategory category) {
+   public boolean m_sztksdtu(RecipeBookType category) {
       return this.options.isFilteringCraftable(category);
    }
 
    /**
     * @mapping {@literal hashed m_hfwovzdu Lnet/minecraft/unmapped/C_bluodrzq;m_hfwovzdu(Lnet/minecraft/unmapped/C_mrybqpjh;Z)V}
-    * @mapping {@literal named setFilteringCraftable Lnet/minecraft/recipe/book/RecipeBook;setFilteringCraftable(Lnet/minecraft/recipe/book/RecipeBookCategory;Z)V}
+    * @mapping {@literal named setFilteringCraftable Lnet/minecraft/recipe/book/RecipeBook;setFilteringCraftable(Lnet/minecraft/recipe/book/RecipeBookType;Z)V}
     */
-   public void setFilteringCraftable(RecipeBookCategory category, boolean filteringCraftable) {
+   public void setFilteringCraftable(RecipeBookType category, boolean filteringCraftable) {
       this.options.setFilteringCraftable(category, filteringCraftable);
    }
 
@@ -61,9 +61,9 @@
 
    /**
     * @mapping {@literal hashed m_xfygsdww Lnet/minecraft/unmapped/C_bluodrzq;m_xfygsdww(Lnet/minecraft/unmapped/C_mrybqpjh;ZZ)V}
-    * @mapping {@literal named setCategoryOptions Lnet/minecraft/recipe/book/RecipeBook;setCategoryOptions(Lnet/minecraft/recipe/book/RecipeBookCategory;ZZ)V}
+    * @mapping {@literal named setCategoryOptions Lnet/minecraft/recipe/book/RecipeBook;setCategoryOptions(Lnet/minecraft/recipe/book/RecipeBookType;ZZ)V}
     */
-   public void setCategoryOptions(RecipeBookCategory category, boolean guiOpen, boolean filteringCraftable) {
+   public void setCategoryOptions(RecipeBookType category, boolean guiOpen, boolean filteringCraftable) {
       this.options.setGuiOpen(category, guiOpen);
       this.options.setFilteringCraftable(category, filteringCraftable);
    }
diff -bur namedTargetSrc/net/minecraft/recipe/book/RecipeBookOptions.java namedSrc/net/minecraft/recipe/book/RecipeBookOptions.java
--- namedTargetSrc/net/minecraft/recipe/book/RecipeBookOptions.java	2024-10-07 17:15:15.736635835 +0000
+++ namedSrc/net/minecraft/recipe/book/RecipeBookOptions.java	2024-10-07 17:14:07.455684465 +0000
@@ -25,27 +25,27 @@
     * @mapping {@literal hashed f_poeuzclv Lnet/minecraft/unmapped/C_krpwsfph;f_poeuzclv:Ljava/util/Map;}
     * @mapping {@literal named CATEGORY_OPTION_NAMES Lnet/minecraft/recipe/book/RecipeBookOptions;CATEGORY_OPTION_NAMES:Ljava/util/Map;}
     */
-   private static final Map<RecipeBookCategory, Pair<String, String>> CATEGORY_OPTION_NAMES = ImmutableMap.of(
-      RecipeBookCategory.CRAFTING,
+   private static final Map<RecipeBookType, Pair<String, String>> CATEGORY_OPTION_NAMES = ImmutableMap.of(
+      RecipeBookType.CRAFTING,
       Pair.of("isGuiOpen", "isFilteringCraftable"),
-      RecipeBookCategory.FURNACE,
+      RecipeBookType.FURNACE,
       Pair.of("isFurnaceGuiOpen", "isFurnaceFilteringCraftable"),
-      RecipeBookCategory.BLAST_FURNACE,
+      RecipeBookType.BLAST_FURNACE,
       Pair.of("isBlastingFurnaceGuiOpen", "isBlastingFurnaceFilteringCraftable"),
-      RecipeBookCategory.SMOKER,
+      RecipeBookType.SMOKER,
       Pair.of("isSmokerGuiOpen", "isSmokerFilteringCraftable")
    );
    /**
     * @mapping {@literal hashed f_njcmqnpr Lnet/minecraft/unmapped/C_krpwsfph;f_njcmqnpr:Ljava/util/Map;}
     * @mapping {@literal named categoryOptions Lnet/minecraft/recipe/book/RecipeBookOptions;categoryOptions:Ljava/util/Map;}
     */
-   private final Map<RecipeBookCategory, RecipeBookOptions.CategoryOption> categoryOptions;
+   private final Map<RecipeBookType, RecipeBookOptions.CategoryOption> categoryOptions;
 
    /**
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_krpwsfph;<init>(Ljava/util/Map;)V}
     * @mapping {@literal named <init> Lnet/minecraft/recipe/book/RecipeBookOptions;<init>(Ljava/util/Map;)V}
     */
-   private RecipeBookOptions(Map<RecipeBookCategory, RecipeBookOptions.CategoryOption> categoryOptions) {
+   private RecipeBookOptions(Map<RecipeBookType, RecipeBookOptions.CategoryOption> categoryOptions) {
       this.categoryOptions = categoryOptions;
    }
 
@@ -54,22 +54,22 @@
     * @mapping {@literal named <init> Lnet/minecraft/recipe/book/RecipeBookOptions;<init>()V}
     */
    public RecipeBookOptions() {
-      this(new EnumMap(RecipeBookCategory.class));
+      this(new EnumMap(RecipeBookType.class));
    }
 
    /**
     * @mapping {@literal hashed m_lbeqxrgh Lnet/minecraft/unmapped/C_krpwsfph;m_lbeqxrgh(Lnet/minecraft/unmapped/C_mrybqpjh;)Lnet/minecraft/unmapped/C_krpwsfph$C_rkomjauh;}
-    * @mapping {@literal named m_lbeqxrgh Lnet/minecraft/recipe/book/RecipeBookOptions;m_lbeqxrgh(Lnet/minecraft/recipe/book/RecipeBookCategory;)Lnet/minecraft/recipe/book/RecipeBookOptions$CategoryOption;}
+    * @mapping {@literal named getCategoryOption Lnet/minecraft/recipe/book/RecipeBookOptions;getCategoryOption(Lnet/minecraft/recipe/book/RecipeBookType;)Lnet/minecraft/recipe/book/RecipeBookOptions$CategoryOption;}
     */
-   private RecipeBookOptions.CategoryOption m_lbeqxrgh(RecipeBookCategory key) {
+   private RecipeBookOptions.CategoryOption getCategoryOption(RecipeBookType key) {
       return (RecipeBookOptions.CategoryOption)this.categoryOptions.getOrDefault(key, RecipeBookOptions.CategoryOption.f_gaumfona);
    }
 
    /**
     * @mapping {@literal hashed m_fnyzsudn Lnet/minecraft/unmapped/C_krpwsfph;m_fnyzsudn(Lnet/minecraft/unmapped/C_mrybqpjh;Ljava/util/function/UnaryOperator;)V}
-    * @mapping {@literal named m_fnyzsudn Lnet/minecraft/recipe/book/RecipeBookOptions;m_fnyzsudn(Lnet/minecraft/recipe/book/RecipeBookCategory;Ljava/util/function/UnaryOperator;)V}
+    * @mapping {@literal named m_fnyzsudn Lnet/minecraft/recipe/book/RecipeBookOptions;m_fnyzsudn(Lnet/minecraft/recipe/book/RecipeBookType;Ljava/util/function/UnaryOperator;)V}
     */
-   private void m_fnyzsudn(RecipeBookCategory key, UnaryOperator<RecipeBookOptions.CategoryOption> unaryOperator) {
+   private void m_fnyzsudn(RecipeBookType key, UnaryOperator<RecipeBookOptions.CategoryOption> unaryOperator) {
       this.categoryOptions.compute(key, (arg, arg2) -> {
          if (arg2 == null) {
             arg2 = RecipeBookOptions.CategoryOption.f_gaumfona;
@@ -86,33 +86,33 @@
 
    /**
     * @mapping {@literal hashed m_dzigyanj Lnet/minecraft/unmapped/C_krpwsfph;m_dzigyanj(Lnet/minecraft/unmapped/C_mrybqpjh;)Z}
-    * @mapping {@literal named isGuiOpen Lnet/minecraft/recipe/book/RecipeBookOptions;isGuiOpen(Lnet/minecraft/recipe/book/RecipeBookCategory;)Z}
+    * @mapping {@literal named isGuiOpen Lnet/minecraft/recipe/book/RecipeBookOptions;isGuiOpen(Lnet/minecraft/recipe/book/RecipeBookType;)Z}
     */
-   public boolean isGuiOpen(RecipeBookCategory category) {
-      return this.m_lbeqxrgh(category).guiOpen;
+   public boolean isGuiOpen(RecipeBookType category) {
+      return this.getCategoryOption(category).guiOpen;
    }
 
    /**
     * @mapping {@literal hashed m_rptsylcm Lnet/minecraft/unmapped/C_krpwsfph;m_rptsylcm(Lnet/minecraft/unmapped/C_mrybqpjh;Z)V}
-    * @mapping {@literal named setGuiOpen Lnet/minecraft/recipe/book/RecipeBookOptions;setGuiOpen(Lnet/minecraft/recipe/book/RecipeBookCategory;Z)V}
+    * @mapping {@literal named setGuiOpen Lnet/minecraft/recipe/book/RecipeBookOptions;setGuiOpen(Lnet/minecraft/recipe/book/RecipeBookType;Z)V}
     */
-   public void setGuiOpen(RecipeBookCategory category, boolean open) {
+   public void setGuiOpen(RecipeBookType category, boolean open) {
       this.m_fnyzsudn(category, arg -> arg.m_zrbckpak(open));
    }
 
    /**
     * @mapping {@literal hashed m_lcagcrlp Lnet/minecraft/unmapped/C_krpwsfph;m_lcagcrlp(Lnet/minecraft/unmapped/C_mrybqpjh;)Z}
-    * @mapping {@literal named isFilteringCraftable Lnet/minecraft/recipe/book/RecipeBookOptions;isFilteringCraftable(Lnet/minecraft/recipe/book/RecipeBookCategory;)Z}
+    * @mapping {@literal named isFilteringCraftable Lnet/minecraft/recipe/book/RecipeBookOptions;isFilteringCraftable(Lnet/minecraft/recipe/book/RecipeBookType;)Z}
     */
-   public boolean isFilteringCraftable(RecipeBookCategory category) {
-      return this.m_lbeqxrgh(category).filteringCraftable;
+   public boolean isFilteringCraftable(RecipeBookType category) {
+      return this.getCategoryOption(category).filteringCraftable;
    }
 
    /**
     * @mapping {@literal hashed m_fcqervdh Lnet/minecraft/unmapped/C_krpwsfph;m_fcqervdh(Lnet/minecraft/unmapped/C_mrybqpjh;Z)V}
-    * @mapping {@literal named setFilteringCraftable Lnet/minecraft/recipe/book/RecipeBookOptions;setFilteringCraftable(Lnet/minecraft/recipe/book/RecipeBookCategory;Z)V}
+    * @mapping {@literal named setFilteringCraftable Lnet/minecraft/recipe/book/RecipeBookOptions;setFilteringCraftable(Lnet/minecraft/recipe/book/RecipeBookType;Z)V}
     */
-   public void setFilteringCraftable(RecipeBookCategory category, boolean filtering) {
+   public void setFilteringCraftable(RecipeBookType category, boolean filtering) {
       this.m_fnyzsudn(category, arg -> arg.m_dcazvald(filtering));
    }
 
@@ -121,9 +121,9 @@
     * @mapping {@literal named fromPacket Lnet/minecraft/recipe/book/RecipeBookOptions;fromPacket(Lnet/minecraft/network/PacketByteBuf;)Lnet/minecraft/recipe/book/RecipeBookOptions;}
     */
    private static RecipeBookOptions fromPacket(PacketByteBuf buf) {
-      Map<RecipeBookCategory, RecipeBookOptions.CategoryOption> map = new EnumMap(RecipeBookCategory.class);
+      Map<RecipeBookType, RecipeBookOptions.CategoryOption> map = new EnumMap(RecipeBookType.class);
 
-      for (RecipeBookCategory lv : RecipeBookCategory.values()) {
+      for (RecipeBookType lv : RecipeBookType.values()) {
          boolean bl = buf.readBoolean();
          boolean bl2 = buf.readBoolean();
          if (bl || bl2) {
@@ -139,7 +139,7 @@
     * @mapping {@literal named toPacket Lnet/minecraft/recipe/book/RecipeBookOptions;toPacket(Lnet/minecraft/network/PacketByteBuf;)V}
     */
    private void toPacket(PacketByteBuf buf) {
-      for (RecipeBookCategory lv : RecipeBookCategory.values()) {
+      for (RecipeBookType lv : RecipeBookType.values()) {
          RecipeBookOptions.CategoryOption lv2 = (RecipeBookOptions.CategoryOption)this.categoryOptions
             .getOrDefault(lv, RecipeBookOptions.CategoryOption.f_gaumfona);
          buf.writeBoolean(lv2.guiOpen);
@@ -152,7 +152,7 @@
     * @mapping {@literal named fromNbt Lnet/minecraft/recipe/book/RecipeBookOptions;fromNbt(Lnet/minecraft/nbt/NbtCompound;)Lnet/minecraft/recipe/book/RecipeBookOptions;}
     */
    public static RecipeBookOptions fromNbt(NbtCompound nbt) {
-      Map<RecipeBookCategory, RecipeBookOptions.CategoryOption> map = new EnumMap(RecipeBookCategory.class);
+      Map<RecipeBookType, RecipeBookOptions.CategoryOption> map = new EnumMap(RecipeBookType.class);
       CATEGORY_OPTION_NAMES.forEach((arg2, pair) -> {
          boolean bl = nbt.getBoolean((String)pair.getFirst());
          boolean bl2 = nbt.getBoolean((String)pair.getSecond());
Only in namedSrc/net/minecraft/recipe/book: RecipeBookType.java
diff -bur namedTargetSrc/net/minecraft/recipe/BrewingRecipeRegistry.java namedSrc/net/minecraft/recipe/BrewingRecipeRegistry.java
--- namedTargetSrc/net/minecraft/recipe/BrewingRecipeRegistry.java	2024-10-07 17:15:15.704636323 +0000
+++ namedSrc/net/minecraft/recipe/BrewingRecipeRegistry.java	2024-10-07 17:14:07.409685164 +0000
@@ -319,9 +319,7 @@
             requirePotion(bottomInput);
             requirePotion(output);
             this.itemRecipes
-               .add(
-                  new BrewingRecipeRegistry.Recipe<>(bottomInput.getBuiltInRegistryHolder(), Ingredient.m_xqanmytq(topInput), output.getBuiltInRegistryHolder())
-               );
+               .add(new BrewingRecipeRegistry.Recipe<>(bottomInput.getBuiltInRegistryHolder(), Ingredient.ofItem(topInput), output.getBuiltInRegistryHolder()));
          }
       }
 
@@ -329,10 +327,10 @@
        * @mapping {@literal hashed m_pdipybln Lnet/minecraft/unmapped/C_ilssplzn$C_anvszzom;m_pdipybln(Lnet/minecraft/unmapped/C_vorddnax;)V}
        * @mapping {@literal named addBottomIngredient Lnet/minecraft/recipe/BrewingRecipeRegistry$Builder;addBottomIngredient(Lnet/minecraft/item/Item;)V}
        */
-      public void addBottomIngredient(Item arg) {
-         if (arg.enabledIn(this.features)) {
-            requirePotion(arg);
-            this.bottomIngredients.add(Ingredient.m_xqanmytq(arg));
+      public void addBottomIngredient(Item item) {
+         if (item.enabledIn(this.features)) {
+            requirePotion(item);
+            this.bottomIngredients.add(Ingredient.ofItem(item));
          }
       }
 
@@ -342,7 +340,7 @@
        */
       public void addPotionRecipe(Holder<Potion> bottomInput, Item topInput, Holder<Potion> output) {
          if (bottomInput.getValue().enabledIn(this.features) && topInput.enabledIn(this.features) && output.getValue().enabledIn(this.features)) {
-            this.potionRecipes.add(new BrewingRecipeRegistry.Recipe<>(bottomInput, Ingredient.m_xqanmytq(topInput), output));
+            this.potionRecipes.add(new BrewingRecipeRegistry.Recipe<>(bottomInput, Ingredient.ofItem(topInput), output));
          }
       }
 
diff -bur namedTargetSrc/net/minecraft/recipe/CampfireCookingRecipe.java namedSrc/net/minecraft/recipe/CampfireCookingRecipe.java
--- namedTargetSrc/net/minecraft/recipe/CampfireCookingRecipe.java	2024-10-07 17:15:15.736635835 +0000
+++ namedSrc/net/minecraft/recipe/CampfireCookingRecipe.java	2024-10-07 17:14:07.455684465 +0000
@@ -3,7 +3,7 @@
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.item.Items;
-import net.minecraft.unmapped.C_sxzvngst;
+import net.minecraft.recipe.book.RecipeBookGroup;
 
 /**
  * @mapping {@literal hashed net/minecraft/unmapped/C_alixkcla}
@@ -22,7 +22,7 @@
     * Mapping not found
     */
    @Override
-   protected Item m_iedtbqqy() {
+   protected Item getWorkstation() {
       return Items.CAMPFIRE;
    }
 
@@ -46,7 +46,7 @@
     * Mapping not found
     */
    @Override
-   public C_sxzvngst m_acqxyxru() {
-      return C_sxzvngst.CAMPFIRE;
+   public RecipeBookGroup getRecipeBookCategory() {
+      return RecipeBookGroup.CAMPFIRE;
    }
 }

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

View the diff here (3/3):
diff -bur namedTargetSrc/net/minecraft/recipe/CookingCategory.java namedSrc/net/minecraft/recipe/CookingCategory.java
--- namedTargetSrc/net/minecraft/recipe/CookingCategory.java	2024-10-07 17:15:15.780635165 +0000
+++ namedSrc/net/minecraft/recipe/CookingCategory.java	2024-10-07 17:14:07.534683264 +0000
@@ -29,11 +29,10 @@
    MISC(2, "misc");
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_lvvhcvlc Lnet/minecraft/unmapped/C_gtxamkec;f_lvvhcvlc:Ljava/util/function/IntFunction;}
+    * @mapping {@literal named BY_ID Lnet/minecraft/recipe/CookingCategory;BY_ID:Ljava/util/function/IntFunction;}
     */
-   private static final IntFunction<CookingCategory> f_lvvhcvlc = IdListUtil.createByIdGetter(
-      arg -> arg.f_nspqxnnz, values(), IdListUtil.OutOfBoundsHandler.ZERO
-   );
+   private static final IntFunction<CookingCategory> BY_ID = IdListUtil.createByIdGetter(arg -> arg.id, values(), IdListUtil.OutOfBoundsHandler.ZERO);
    /**
     * @mapping {@literal hashed f_aobpgvfm Lnet/minecraft/unmapped/C_gtxamkec;f_aobpgvfm:Lcom/mojang/serialization/Codec;}
     * @mapping {@literal named CODEC Lnet/minecraft/recipe/CookingCategory;CODEC:Lcom/mojang/serialization/Codec;}
@@ -43,11 +42,12 @@
     * @mapping {@literal hashed f_ujfbxrlp Lnet/minecraft/unmapped/C_gtxamkec;f_ujfbxrlp:Lnet/minecraft/unmapped/C_qsrmwluu;}
     * @mapping {@literal named PACKET_CODEC Lnet/minecraft/recipe/CookingCategory;PACKET_CODEC:Lnet/minecraft/network/codec/PacketCodec;}
     */
-   public static final PacketCodec<ByteBuf, CookingCategory> PACKET_CODEC = PacketCodecs.indexed(f_lvvhcvlc, arg -> arg.f_nspqxnnz);
+   public static final PacketCodec<ByteBuf, CookingCategory> PACKET_CODEC = PacketCodecs.indexed(BY_ID, arg -> arg.id);
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_nspqxnnz Lnet/minecraft/unmapped/C_gtxamkec;f_nspqxnnz:I}
+    * @mapping {@literal named id Lnet/minecraft/recipe/CookingCategory;id:I}
     */
-   private final int f_nspqxnnz;
+   private final int id;
    /**
     * @mapping {@literal hashed f_ldjtjvax Lnet/minecraft/unmapped/C_gtxamkec;f_ldjtjvax:Ljava/lang/String;}
     * @mapping {@literal named name Lnet/minecraft/recipe/CookingCategory;name:Ljava/lang/String;}
@@ -58,8 +58,8 @@
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_gtxamkec;<init>(Ljava/lang/String;IILjava/lang/String;)V}
     * @mapping {@literal named <init> Lnet/minecraft/recipe/CookingCategory;<init>(Ljava/lang/String;IILjava/lang/String;)V}
     */
-   private CookingCategory(final int j, final String name) {
-      this.f_nspqxnnz = j;
+   private CookingCategory(final int id, final String name) {
+      this.id = id;
       this.name = name;
    }
 
diff -bur namedTargetSrc/net/minecraft/recipe/CraftingRecipe.java namedSrc/net/minecraft/recipe/CraftingRecipe.java
--- namedTargetSrc/net/minecraft/recipe/CraftingRecipe.java	2024-10-07 17:15:15.696636445 +0000
+++ namedSrc/net/minecraft/recipe/CraftingRecipe.java	2024-10-07 17:14:07.398685331 +0000
@@ -2,7 +2,7 @@
 
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
-import net.minecraft.unmapped.C_sxzvngst;
+import net.minecraft.recipe.book.RecipeBookGroup;
 import net.minecraft.util.collection.DefaultedList;
 
 /**
@@ -55,12 +55,12 @@
     * Mapping not found
     */
    @Override
-   default C_sxzvngst m_acqxyxru() {
+   default RecipeBookGroup getRecipeBookCategory() {
       return switch (this.getCategory()) {
-         case BUILDING -> C_sxzvngst.CRAFTING_BUILDING_BLOCKS;
-         case EQUIPMENT -> C_sxzvngst.CRAFTING_EQUIPMENT;
-         case REDSTONE -> C_sxzvngst.CRAFTING_REDSTONE;
-         case MISC -> C_sxzvngst.CRAFTING_MISC;
+         case BUILDING -> RecipeBookGroup.CRAFTING_BUILDING_BLOCKS;
+         case EQUIPMENT -> RecipeBookGroup.CRAFTING_EQUIPMENT;
+         case REDSTONE -> RecipeBookGroup.CRAFTING_REDSTONE;
+         case MISC -> RecipeBookGroup.CRAFTING_MISC;
       };
    }
 }
diff -bur namedTargetSrc/net/minecraft/recipe/CuttingRecipe.java namedSrc/net/minecraft/recipe/CuttingRecipe.java
--- namedTargetSrc/net/minecraft/recipe/CuttingRecipe.java	2024-10-07 17:15:15.750635622 +0000
+++ namedSrc/net/minecraft/recipe/CuttingRecipe.java	2024-10-07 17:14:07.479684100 +0000
@@ -74,7 +74,7 @@
     * Mapping not found
     */
    @Override
-   public String m_bsknoala() {
+   public String getGroup() {
       return this.group;
    }
 
@@ -148,7 +148,7 @@
       protected Serializer(CuttingRecipe.RecipeFactory<T> obj) {
          this.codec = RecordCodecBuilder.mapCodec(
             instance -> instance.group(
-                     Codec.STRING.optionalFieldOf("group", "").forGetter(CuttingRecipe::m_bsknoala),
+                     Codec.STRING.optionalFieldOf("group", "").forGetter(CuttingRecipe::getGroup),
                      Ingredient.ALLOW_EMPTY_CODEC.fieldOf("ingredient").forGetter(CuttingRecipe::m_gmwouxav),
                      ItemStack.f_gwlvilfo.fieldOf("result").forGetter(CuttingRecipe::m_xqfftcwo)
                   )
@@ -156,7 +156,7 @@
          );
          this.packetCodec = PacketCodec.tuple(
             PacketCodecs.STRING,
-            CuttingRecipe::m_bsknoala,
+            CuttingRecipe::getGroup,
             Ingredient.PACKET_CODEC,
             CuttingRecipe::m_gmwouxav,
             ItemStack.PACKET_CODEC,
Only in namedSrc/net/minecraft/recipe: display
diff -bur namedTargetSrc/net/minecraft/recipe/FireworkRocketRecipe.java namedSrc/net/minecraft/recipe/FireworkRocketRecipe.java
--- namedTargetSrc/net/minecraft/recipe/FireworkRocketRecipe.java	2024-10-07 17:15:15.676636750 +0000
+++ namedSrc/net/minecraft/recipe/FireworkRocketRecipe.java	2024-10-07 17:14:07.367685803 +0000
@@ -19,17 +19,17 @@
     * @mapping {@literal hashed f_jilfrkjo Lnet/minecraft/unmapped/C_hubnseit;f_jilfrkjo:Lnet/minecraft/unmapped/C_tcpsydrv;}
     * @mapping {@literal named PAPER Lnet/minecraft/recipe/FireworkRocketRecipe;PAPER:Lnet/minecraft/recipe/Ingredient;}
     */
-   private static final Ingredient PAPER = Ingredient.m_xqanmytq(Items.PAPER);
+   private static final Ingredient PAPER = Ingredient.ofItem(Items.PAPER);
    /**
     * @mapping {@literal hashed f_teivxjdi Lnet/minecraft/unmapped/C_hubnseit;f_teivxjdi:Lnet/minecraft/unmapped/C_tcpsydrv;}
     * @mapping {@literal named DURATION_MODIFIER Lnet/minecraft/recipe/FireworkRocketRecipe;DURATION_MODIFIER:Lnet/minecraft/recipe/Ingredient;}
     */
-   private static final Ingredient DURATION_MODIFIER = Ingredient.m_xqanmytq(Items.GUNPOWDER);
+   private static final Ingredient DURATION_MODIFIER = Ingredient.ofItem(Items.GUNPOWDER);
    /**
     * @mapping {@literal hashed f_wetnnlkm Lnet/minecraft/unmapped/C_hubnseit;f_wetnnlkm:Lnet/minecraft/unmapped/C_tcpsydrv;}
     * @mapping {@literal named FIREWORK_STAR Lnet/minecraft/recipe/FireworkRocketRecipe;FIREWORK_STAR:Lnet/minecraft/recipe/Ingredient;}
     */
-   private static final Ingredient FIREWORK_STAR = Ingredient.m_xqanmytq(Items.FIREWORK_STAR);
+   private static final Ingredient FIREWORK_STAR = Ingredient.ofItem(Items.FIREWORK_STAR);
 
    /**
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_hubnseit;<init>(Lnet/minecraft/unmapped/C_aodytokc;)V}
diff -bur namedTargetSrc/net/minecraft/recipe/FireworkStarFadeRecipe.java namedSrc/net/minecraft/recipe/FireworkStarFadeRecipe.java
--- namedTargetSrc/net/minecraft/recipe/FireworkStarFadeRecipe.java	2024-10-07 17:15:15.692636506 +0000
+++ namedSrc/net/minecraft/recipe/FireworkStarFadeRecipe.java	2024-10-07 17:14:07.393685407 +0000
@@ -20,7 +20,7 @@
     * @mapping {@literal hashed f_zjuwiabs Lnet/minecraft/unmapped/C_nzmfepck;f_zjuwiabs:Lnet/minecraft/unmapped/C_tcpsydrv;}
     * @mapping {@literal named INPUT_STAR Lnet/minecraft/recipe/FireworkStarFadeRecipe;INPUT_STAR:Lnet/minecraft/recipe/Ingredient;}
     */
-   private static final Ingredient INPUT_STAR = Ingredient.m_xqanmytq(Items.FIREWORK_STAR);
+   private static final Ingredient INPUT_STAR = Ingredient.ofItem(Items.FIREWORK_STAR);
 
    /**
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_nzmfepck;<init>(Lnet/minecraft/unmapped/C_aodytokc;)V}
diff -bur namedTargetSrc/net/minecraft/recipe/FireworkStarRecipe.java namedSrc/net/minecraft/recipe/FireworkStarRecipe.java
--- namedTargetSrc/net/minecraft/recipe/FireworkStarRecipe.java	2024-10-07 17:15:15.637637344 +0000
+++ namedSrc/net/minecraft/recipe/FireworkStarRecipe.java	2024-10-07 17:14:07.304686765 +0000
@@ -47,17 +47,17 @@
     * @mapping {@literal hashed f_mznhncmz Lnet/minecraft/unmapped/C_opvqgusi;f_mznhncmz:Lnet/minecraft/unmapped/C_tcpsydrv;}
     * @mapping {@literal named TRAIL_MODIFIER Lnet/minecraft/recipe/FireworkStarRecipe;TRAIL_MODIFIER:Lnet/minecraft/recipe/Ingredient;}
     */
-   private static final Ingredient TRAIL_MODIFIER = Ingredient.m_xqanmytq(Items.DIAMOND);
+   private static final Ingredient TRAIL_MODIFIER = Ingredient.ofItem(Items.DIAMOND);
    /**
     * @mapping {@literal hashed f_tdtayqee Lnet/minecraft/unmapped/C_opvqgusi;f_tdtayqee:Lnet/minecraft/unmapped/C_tcpsydrv;}
     * @mapping {@literal named TWINKLE_MODIFIER Lnet/minecraft/recipe/FireworkStarRecipe;TWINKLE_MODIFIER:Lnet/minecraft/recipe/Ingredient;}
     */
-   private static final Ingredient TWINKLE_MODIFIER = Ingredient.m_xqanmytq(Items.GLOWSTONE_DUST);
+   private static final Ingredient TWINKLE_MODIFIER = Ingredient.ofItem(Items.GLOWSTONE_DUST);
    /**
     * @mapping {@literal hashed f_nnmpunts Lnet/minecraft/unmapped/C_opvqgusi;f_nnmpunts:Lnet/minecraft/unmapped/C_tcpsydrv;}
     * @mapping {@literal named GUNPOWDER Lnet/minecraft/recipe/FireworkStarRecipe;GUNPOWDER:Lnet/minecraft/recipe/Ingredient;}
     */
-   private static final Ingredient GUNPOWDER = Ingredient.m_xqanmytq(Items.GUNPOWDER);
+   private static final Ingredient GUNPOWDER = Ingredient.ofItem(Items.GUNPOWDER);
 
    /**
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_opvqgusi;<init>(Lnet/minecraft/unmapped/C_aodytokc;)V}
diff -bur namedTargetSrc/net/minecraft/recipe/Ingredient.java namedSrc/net/minecraft/recipe/Ingredient.java
--- namedTargetSrc/net/minecraft/recipe/Ingredient.java	2024-10-07 17:15:15.729635942 +0000
+++ namedSrc/net/minecraft/recipe/Ingredient.java	2024-10-07 17:14:07.443684647 +0000
@@ -16,11 +16,11 @@
 import net.minecraft.network.RegistryByteBuf;
 import net.minecraft.network.codec.PacketCodec;
 import net.minecraft.network.codec.PacketCodecs;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.registry.Holder;
 import net.minecraft.registry.HolderSet;
 import net.minecraft.registry.RegistryKeys;
 import net.minecraft.resource.HolderSetCodec;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.util.dynamic.Codecs;
 import org.jetbrains.annotations.Nullable;
 
@@ -36,32 +36,35 @@
    public static final PacketCodec<RegistryByteBuf, Ingredient> PACKET_CODEC = PacketCodecs.holderSet(RegistryKeys.ITEM)
       .map(Ingredient::new, arg -> arg.entries);
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_qdqdigpw Lnet/minecraft/unmapped/C_tcpsydrv;f_qdqdigpw:Lnet/minecraft/unmapped/C_qsrmwluu;}
+    * @mapping {@literal named OPTIONAL_PACKET_CODEC Lnet/minecraft/recipe/Ingredient;OPTIONAL_PACKET_CODEC:Lnet/minecraft/network/codec/PacketCodec;}
     */
-   public static final PacketCodec<RegistryByteBuf, Optional<Ingredient>> f_qdqdigpw = PacketCodecs.holderSet(RegistryKeys.ITEM)
+   public static final PacketCodec<RegistryByteBuf, Optional<Ingredient>> OPTIONAL_PACKET_CODEC = PacketCodecs.holderSet(RegistryKeys.ITEM)
       .map(
          arg -> arg.size() == 0 ? Optional.empty() : Optional.of(new Ingredient(arg)),
          optional -> (HolderSet)optional.map(arg -> arg.entries).orElse(HolderSet.createDirect())
       );
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_qqfxxlfb Lnet/minecraft/unmapped/C_tcpsydrv;f_qqfxxlfb:Lcom/mojang/serialization/Codec;}
+    * @mapping {@literal named ENTRIES_CODEC Lnet/minecraft/recipe/Ingredient;ENTRIES_CODEC:Lcom/mojang/serialization/Codec;}
     */
-   public static final Codec<HolderSet<Item>> f_qqfxxlfb = HolderSetCodec.create(RegistryKeys.ITEM, ItemStack.NON_AIR_ITEM_CODEC, false);
+   public static final Codec<HolderSet<Item>> ENTRIES_CODEC = HolderSetCodec.create(RegistryKeys.ITEM, ItemStack.NON_AIR_ITEM_CODEC, false);
    /**
     * @mapping {@literal hashed f_clxednmi Lnet/minecraft/unmapped/C_tcpsydrv;f_clxednmi:Lcom/mojang/serialization/Codec;}
     * @mapping {@literal named ALLOW_EMPTY_CODEC Lnet/minecraft/recipe/Ingredient;ALLOW_EMPTY_CODEC:Lcom/mojang/serialization/Codec;}
     */
-   public static final Codec<Ingredient> ALLOW_EMPTY_CODEC = Codecs.withNonEmptyHolderSet(f_qqfxxlfb).xmap(Ingredient::new, arg -> arg.entries);
+   public static final Codec<Ingredient> ALLOW_EMPTY_CODEC = Codecs.withNonEmptyHolderSet(ENTRIES_CODEC).xmap(Ingredient::new, arg -> arg.entries);
    /**
     * @mapping {@literal hashed f_kavmzocu Lnet/minecraft/unmapped/C_tcpsydrv;f_kavmzocu:Lnet/minecraft/unmapped/C_odfnijdo;}
     * @mapping {@literal named entries Lnet/minecraft/recipe/Ingredient;entries:Lnet/minecraft/registry/HolderSet;}
     */
    private final HolderSet<Item> entries;
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_wpamqjgv Lnet/minecraft/unmapped/C_tcpsydrv;f_wpamqjgv:Ljava/util/List;}
+    * @mapping {@literal named items Lnet/minecraft/recipe/Ingredient;items:Ljava/util/List;}
     */
    @Nullable
-   private List<Holder<Item>> f_wpamqjgv;
+   private List<Holder<Item>> items;
 
    /**
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_tcpsydrv;<init>(Lnet/minecraft/unmapped/C_odfnijdo;)V}
@@ -80,21 +83,22 @@
 
    /**
     * @mapping {@literal hashed m_nomwikbn Lnet/minecraft/unmapped/C_tcpsydrv;m_nomwikbn(Ljava/util/Optional;Lnet/minecraft/unmapped/C_sddaxwyk;)Z}
-    * @mapping {@literal named m_nomwikbn Lnet/minecraft/recipe/Ingredient;m_nomwikbn(Ljava/util/Optional;Lnet/minecraft/item/ItemStack;)Z}
+    * @mapping {@literal named testOptionalIngredient Lnet/minecraft/recipe/Ingredient;testOptionalIngredient(Ljava/util/Optional;Lnet/minecraft/item/ItemStack;)Z}
     */
-   public static boolean m_nomwikbn(Optional<Ingredient> optional, ItemStack stack) {
+   public static boolean testOptionalIngredient(Optional<Ingredient> optional, ItemStack stack) {
       return (Boolean)optional.map(arg2 -> arg2.test(stack)).orElseGet(stack::isEmpty);
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_hiksyixf Lnet/minecraft/unmapped/C_tcpsydrv;m_hiksyixf()Ljava/util/List;}
+    * @mapping {@literal named getItems Lnet/minecraft/recipe/Ingredient;getItems()Ljava/util/List;}
     */
-   public List<Holder<Item>> m_hiksyixf() {
-      if (this.f_wpamqjgv == null) {
-         this.f_wpamqjgv = ImmutableList.copyOf(this.entries);
+   public List<Holder<Item>> getItems() {
+      if (this.items == null) {
+         this.items = ImmutableList.copyOf(this.entries);
       }
 
-      return this.f_wpamqjgv;
+      return this.items;
    }
 
    /**
@@ -102,7 +106,7 @@
     * @mapping {@literal named test Lnet/minecraft/recipe/Ingredient;test(Lnet/minecraft/item/ItemStack;)Z}
     */
    public boolean test(ItemStack stack) {
-      List<Holder<Item>> list = this.m_hiksyixf();
+      List<Holder<Item>> list = this.getItems();
 
       for (int i = 0; i < list.size(); i++) {
          if (stack.matches((Holder<Item>)list.get(i))) {
@@ -122,10 +126,11 @@
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_xqanmytq Lnet/minecraft/unmapped/C_tcpsydrv;m_xqanmytq(Lnet/minecraft/unmapped/C_gmbqjnle;)Lnet/minecraft/unmapped/C_tcpsydrv;}
+    * @mapping {@literal named ofItem Lnet/minecraft/recipe/Ingredient;ofItem(Lnet/minecraft/item/ItemConvertible;)Lnet/minecraft/recipe/Ingredient;}
     */
-   public static Ingredient m_xqanmytq(ItemConvertible arg) {
-      return new Ingredient(HolderSet.createDirect(arg.asItem().getBuiltInRegistryHolder()));
+   public static Ingredient ofItem(ItemConvertible item) {
+      return new Ingredient(HolderSet.createDirect(item.asItem().getBuiltInRegistryHolder()));
    }
 
    /**
@@ -146,21 +151,24 @@
 
    /**
     * @mapping {@literal hashed m_owdzpelq Lnet/minecraft/unmapped/C_tcpsydrv;m_owdzpelq(Lnet/minecraft/unmapped/C_odfnijdo;)Lnet/minecraft/unmapped/C_tcpsydrv;}
-    * @mapping {@literal named m_owdzpelq Lnet/minecraft/recipe/Ingredient;m_owdzpelq(Lnet/minecraft/registry/HolderSet;)Lnet/minecraft/recipe/Ingredient;}
+    * @mapping {@literal named ofItems Lnet/minecraft/recipe/Ingredient;ofItems(Lnet/minecraft/registry/HolderSet;)Lnet/minecraft/recipe/Ingredient;}
     */
-   public static Ingredient m_owdzpelq(HolderSet<Item> entries) {
+   public static Ingredient ofItems(HolderSet<Item> entries) {
       return new Ingredient(entries);
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_lqlwthyg Lnet/minecraft/unmapped/C_tcpsydrv;m_lqlwthyg()Lnet/minecraft/unmapped/C_lahbbtfn;}
+    * @mapping {@literal named getSlotDisplay Lnet/minecraft/recipe/Ingredient;getSlotDisplay()Lnet/minecraft/recipe/display/SlotDisplay;}
     */
-   public C_lahbbtfn m_lqlwthyg() {
+   public SlotDisplay getSlotDisplay() {
       return this.entries
          .getTagOrContents()
          .map(
-            C_lahbbtfn.C_dagrdujt::new,
-            list -> new C_lahbbtfn.C_pmazkmzv((List<C_lahbbtfn>)list.stream().map(C_lahbbtfn.C_pssneihq::new).collect(Collectors.toUnmodifiableList()))
+            SlotDisplay.TagSlotDisplay::new,
+            list -> new SlotDisplay.CompositeSlotDisplay(
+                  (List<SlotDisplay>)list.stream().map(SlotDisplay.ItemSlotDisplay::new).collect(Collectors.toUnmodifiableList())
+               )
          );
    }
 }
diff -bur namedTargetSrc/net/minecraft/recipe/InputSlotFiller.java namedSrc/net/minecraft/recipe/InputSlotFiller.java
--- namedTargetSrc/net/minecraft/recipe/InputSlotFiller.java	2024-10-07 17:15:15.778635195 +0000
+++ namedSrc/net/minecraft/recipe/InputSlotFiller.java	2024-10-07 17:14:07.531683309 +0000
@@ -31,48 +31,53 @@
    private final PlayerInventory inventory;
    /**
     * @mapping {@literal hashed f_mykbaanb Lnet/minecraft/unmapped/C_rqdekljo;f_mykbaanb:Lnet/minecraft/unmapped/C_rqdekljo$C_wdzsgelo;}
-    * @mapping {@literal named handler Lnet/minecraft/recipe/InputSlotFiller;handler:Lnet/minecraft/recipe/InputSlotFiller$C_wdzsgelo;}
+    * @mapping {@literal named handler Lnet/minecraft/recipe/InputSlotFiller;handler:Lnet/minecraft/recipe/InputSlotFiller$Handler;}
     */
-   private final InputSlotFiller.C_wdzsgelo<R> handler;
+   private final InputSlotFiller.Handler<R> handler;
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_smhfaqyt Lnet/minecraft/unmapped/C_rqdekljo;f_smhfaqyt:Z}
+    * @mapping {@literal named useAllItems Lnet/minecraft/recipe/InputSlotFiller;useAllItems:Z}
     */
-   private final boolean f_smhfaqyt;
+   private final boolean useAllItems;
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_qyjiucuo Lnet/minecraft/unmapped/C_rqdekljo;f_qyjiucuo:I}
+    * @mapping {@literal named width Lnet/minecraft/recipe/InputSlotFiller;width:I}
     */
-   private final int f_qyjiucuo;
+   private final int width;
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_esjwwiqu Lnet/minecraft/unmapped/C_rqdekljo;f_esjwwiqu:I}
+    * @mapping {@literal named height Lnet/minecraft/recipe/InputSlotFiller;height:I}
     */
-   private final int f_esjwwiqu;
+   private final int height;
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_kjfcpfev Lnet/minecraft/unmapped/C_rqdekljo;f_kjfcpfev:Ljava/util/List;}
+    * @mapping {@literal named inputSlots Lnet/minecraft/recipe/InputSlotFiller;inputSlots:Ljava/util/List;}
     */
-   private final List<Slot> f_kjfcpfev;
+   private final List<Slot> inputSlots;
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_onjosgzp Lnet/minecraft/unmapped/C_rqdekljo;f_onjosgzp:Ljava/util/List;}
+    * @mapping {@literal named slotsToClear Lnet/minecraft/recipe/InputSlotFiller;slotsToClear:Ljava/util/List;}
     */
-   private final List<Slot> f_onjosgzp;
+   private final List<Slot> slotsToClear;
 
    /**
     * @mapping {@literal hashed m_pxhtzyjl Lnet/minecraft/unmapped/C_rqdekljo;m_pxhtzyjl(Lnet/minecraft/unmapped/C_rqdekljo$C_wdzsgelo;IILjava/util/List;Ljava/util/List;Lnet/minecraft/unmapped/C_sxzqocrm;Lnet/minecraft/unmapped/C_dscbrwbj;ZZ)Lnet/minecraft/unmapped/C_mugvwvfp$C_uwhcecho;}
-    * @mapping {@literal named m_pxhtzyjl Lnet/minecraft/recipe/InputSlotFiller;m_pxhtzyjl(Lnet/minecraft/recipe/InputSlotFiller$C_wdzsgelo;IILjava/util/List;Ljava/util/List;Lnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/recipe/RecipeHolder;ZZ)Lnet/minecraft/screen/AbstractRecipeScreenHandler$C_uwhcecho;}
+    * @mapping {@literal named fill Lnet/minecraft/recipe/InputSlotFiller;fill(Lnet/minecraft/recipe/InputSlotFiller$Handler;IILjava/util/List;Ljava/util/List;Lnet/minecraft/entity/player/PlayerInventory;Lnet/minecraft/recipe/RecipeHolder;ZZ)Lnet/minecraft/screen/AbstractRecipeScreenHandler$PostFillAction;}
     */
-   public static <I extends RecipeInput, R extends Recipe<I>> AbstractRecipeScreenHandler.C_uwhcecho m_pxhtzyjl(
-      InputSlotFiller.C_wdzsgelo<R> handler,
-      int i,
-      int j,
-      List<Slot> list,
-      List<Slot> list2,
+   public static <I extends RecipeInput, R extends Recipe<I>> AbstractRecipeScreenHandler.PostFillAction fill(
+      InputSlotFiller.Handler<R> handler,
+      int width,
+      int height,
+      List<Slot> inputSlots,
+      List<Slot> slotsToClear,
       PlayerInventory inventory,
       RecipeHolder<R> arg3,
-      boolean bl,
-      boolean bl2
+      boolean useAllItems,
+      boolean creative
    ) {
-      InputSlotFiller<R> lv = new InputSlotFiller<>(handler, inventory, bl, i, j, list, list2);
-      if (!bl2 && !lv.canReturnInputs()) {
-         return AbstractRecipeScreenHandler.C_uwhcecho.NOTHING;
+      InputSlotFiller<R> lv = new InputSlotFiller<>(handler, inventory, useAllItems, width, height, inputSlots, slotsToClear);
+      if (!creative && !lv.canReturnInputs()) {
+         return AbstractRecipeScreenHandler.PostFillAction.NOTHING;
       } else {
          C_fcquvjby lv2 = new C_fcquvjby();
          inventory.populateRecipeFinder(lv2);
@@ -83,30 +88,33 @@
 
    /**
     * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_rqdekljo;<init>(Lnet/minecraft/unmapped/C_rqdekljo$C_wdzsgelo;Lnet/minecraft/unmapped/C_sxzqocrm;ZIILjava/util/List;Ljava/util/List;)V}
-    * @mapping {@literal named <init> Lnet/minecraft/recipe/InputSlotFiller;<init>(Lnet/minecraft/recipe/InputSlotFiller$C_wdzsgelo;Lnet/minecraft/entity/player/PlayerInventory;ZIILjava/util/List;Ljava/util/List;)V}
+    * @mapping {@literal named <init> Lnet/minecraft/recipe/InputSlotFiller;<init>(Lnet/minecraft/recipe/InputSlotFiller$Handler;Lnet/minecraft/entity/player/PlayerInventory;ZIILjava/util/List;Ljava/util/List;)V}
     */
-   private InputSlotFiller(InputSlotFiller.C_wdzsgelo<R> handler, PlayerInventory inventory, boolean bl, int i, int j, List<Slot> list, List<Slot> list2) {
+   private InputSlotFiller(
+      InputSlotFiller.Handler<R> handler, PlayerInventory inventory, boolean useAllItems, int width, int height, List<Slot> inputSlots, List<Slot> slotsToClear
+   ) {
       this.handler = handler;
       this.inventory = inventory;
-      this.f_smhfaqyt = bl;
-      this.f_qyjiucuo = i;
-      this.f_esjwwiqu = j;
-      this.f_kjfcpfev = list;
-      this.f_onjosgzp = list2;
+      this.useAllItems = useAllItems;
+      this.width = width;
+      this.height = height;
+      this.inputSlots = inputSlots;
+      this.slotsToClear = slotsToClear;
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_wbiqwmto Lnet/minecraft/unmapped/C_rqdekljo;m_wbiqwmto(Lnet/minecraft/unmapped/C_dscbrwbj;Lnet/minecraft/unmapped/C_fcquvjby;)Lnet/minecraft/unmapped/C_mugvwvfp$C_uwhcecho;}
+    * @mapping {@literal named m_wbiqwmto Lnet/minecraft/recipe/InputSlotFiller;m_wbiqwmto(Lnet/minecraft/recipe/RecipeHolder;Lnet/minecraft/unmapped/C_fcquvjby;)Lnet/minecraft/screen/AbstractRecipeScreenHandler$PostFillAction;}
     */
-   private AbstractRecipeScreenHandler.C_uwhcecho m_wbiqwmto(RecipeHolder<R> arg, C_fcquvjby arg2) {
-      if (arg2.m_ybzemsea(arg.value(), null)) {
-         this.m_jrqrlblg(arg, arg2);
+   private AbstractRecipeScreenHandler.PostFillAction m_wbiqwmto(RecipeHolder<R> recipe, C_fcquvjby arg2) {
+      if (arg2.m_ybzemsea(recipe.value(), null)) {
+         this.m_jrqrlblg(recipe, arg2);
          this.inventory.markDirty();
-         return AbstractRecipeScreenHandler.C_uwhcecho.NOTHING;
+         return AbstractRecipeScreenHandler.PostFillAction.NOTHING;
       } else {
          this.returnInputs();
          this.inventory.markDirty();
-         return AbstractRecipeScreenHandler.C_uwhcecho.PLACE_GHOST_RECIPE;
+         return AbstractRecipeScreenHandler.PostFillAction.PLACE_GHOST_RECIPE;
       }
    }
 
@@ -115,23 +123,24 @@
     * @mapping {@literal named returnInputs Lnet/minecraft/recipe/InputSlotFiller;returnInputs()V}
     */
    private void returnInputs() {
-      for (Slot lv : this.f_onjosgzp) {
+      for (Slot lv : this.slotsToClear) {
          ItemStack lv2 = lv.getStack().copy();
          this.inventory.offer(lv2, false);
          lv.setStack(lv2);
       }
 
-      this.handler.m_ozisvqoq();
+      this.handler.clear();
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_jrqrlblg Lnet/minecraft/unmapped/C_rqdekljo;m_jrqrlblg(Lnet/minecraft/unmapped/C_dscbrwbj;Lnet/minecraft/unmapped/C_fcquvjby;)V}
+    * @mapping {@literal named m_jrqrlblg Lnet/minecraft/recipe/InputSlotFiller;m_jrqrlblg(Lnet/minecraft/recipe/RecipeHolder;Lnet/minecraft/unmapped/C_fcquvjby;)V}
     */
-   private void m_jrqrlblg(RecipeHolder<R> arg, C_fcquvjby arg2) {
-      boolean bl = this.handler.m_aowjqtqt(arg);
-      int i = arg2.m_maorrpzg(arg.value(), null);
+   private void m_jrqrlblg(RecipeHolder<R> recipe, C_fcquvjby arg2) {
+      boolean bl = this.handler.matches(recipe);
+      int i = arg2.m_maorrpzg(recipe.value(), null);
       if (bl) {
-         for (Slot lv : this.f_kjfcpfev) {
+         for (Slot lv : this.inputSlots) {
             ItemStack lv2 = lv.getStack();
             if (!lv2.isEmpty() && Math.min(i, lv2.getMaxCount()) < lv2.getCount() + 1) {
                return;
@@ -139,21 +148,21 @@
          }
       }
 
-      int j = this.m_fjczeutg(i, bl);
+      int j = this.calculateAmountToCraft(i, bl);
       List<Holder<Item>> list = new ArrayList();
-      if (arg2.m_syqmxkya(arg.value(), j, list::add)) {
-         OptionalInt optionalInt = list.stream().mapToInt(argx -> ((Item)argx.getValue()).getMaxStackSize()).min();
+      if (arg2.canCraft(recipe.value(), j, list::add)) {
+         OptionalInt optionalInt = list.stream().mapToInt(arg -> ((Item)arg.getValue()).getMaxStackSize()).min();
          if (optionalInt.isPresent()) {
             j = Math.min(j, optionalInt.getAsInt());
          }
 
          list.clear();
-         if (arg2.m_syqmxkya(arg.value(), j, list::add)) {
+         if (arg2.canCraft(recipe.value(), j, list::add)) {
             this.returnInputs();
             int k = j;
-            C_coojbyml.m_xizdixgu(this.f_qyjiucuo, this.f_esjwwiqu, arg.value(), arg.value().m_vxizbsqx().m_khlqkiiw(), (optional, jx, kx, l) -> {
+            C_coojbyml.m_xizdixgu(this.width, this.height, recipe.value(), recipe.value().m_vxizbsqx().m_khlqkiiw(), (optional, jx, kx, l) -> {
                if (!optional.isEmpty()) {
-                  Slot lvx = (Slot)this.f_kjfcpfev.get(jx);
+                  Slot lvx = (Slot)this.inputSlots.get(jx);
                   int m = ((C_mwwjmrww.C_ihxymiur)optional.get()).placerOutputPosition();
                   int n = k;
 
@@ -171,15 +180,16 @@
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_fjczeutg Lnet/minecraft/unmapped/C_rqdekljo;m_fjczeutg(IZ)I}
+    * @mapping {@literal named calculateAmountToCraft Lnet/minecraft/recipe/InputSlotFiller;calculateAmountToCraft(IZ)I}
     */
-   private int m_fjczeutg(int i, boolean bl) {
-      if (this.f_smhfaqyt) {
-         return i;
-      } else if (bl) {
+   private int calculateAmountToCraft(int useAllItems, boolean match) {
+      if (this.useAllItems) {
+         return useAllItems;
+      } else if (match) {
          int j = Integer.MAX_VALUE;
 
-         for (Slot lv : this.f_kjfcpfev) {
+         for (Slot lv : this.inputSlots) {
             ItemStack lv2 = lv.getStack();
             if (!lv2.isEmpty() && j > lv2.getCount()) {
                j = lv2.getCount();
@@ -233,7 +243,7 @@
       List<ItemStack> list = Lists.<ItemStack>newArrayList();
       int i = this.getFreeInventorySlots();
 
-      for (Slot lv : this.f_kjfcpfev) {
+      for (Slot lv : this.inputSlots) {
          ItemStack lv2 = lv.getStack().copy();
          if (!lv2.isEmpty()) {
             int j = this.inventory.getOccupiedSlotWithRoomForStack(lv2);
@@ -280,22 +290,24 @@
 
    /**
     * @mapping {@literal hashed net/minecraft/unmapped/C_rqdekljo$C_wdzsgelo}
-    * @mapping {@literal named net/minecraft/recipe/InputSlotFiller$C_wdzsgelo}
+    * @mapping {@literal named net/minecraft/recipe/InputSlotFiller$Handler}
     */
-   public interface C_wdzsgelo<T extends Recipe<?>> {
+   public interface Handler<T extends Recipe<?>> {
       /**
        * Mapping not found
        */
       void m_dfjekfwv(C_fcquvjby arg);
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_ozisvqoq Lnet/minecraft/unmapped/C_rqdekljo$C_wdzsgelo;m_ozisvqoq()V}
+       * @mapping {@literal named clear Lnet/minecraft/recipe/InputSlotFiller$Handler;clear()V}
        */
-      void m_ozisvqoq();
+      void clear();
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_aowjqtqt Lnet/minecraft/unmapped/C_rqdekljo$C_wdzsgelo;m_aowjqtqt(Lnet/minecraft/unmapped/C_dscbrwbj;)Z}
+       * @mapping {@literal named matches Lnet/minecraft/recipe/InputSlotFiller$Handler;matches(Lnet/minecraft/recipe/RecipeHolder;)Z}
        */
-      boolean m_aowjqtqt(RecipeHolder<T> arg);
+      boolean matches(RecipeHolder<T> arg);
    }
 }
diff -bur namedTargetSrc/net/minecraft/recipe/MapExtendingRecipe.java namedSrc/net/minecraft/recipe/MapExtendingRecipe.java
--- namedTargetSrc/net/minecraft/recipe/MapExtendingRecipe.java	2024-10-07 17:15:15.686636597 +0000
+++ namedSrc/net/minecraft/recipe/MapExtendingRecipe.java	2024-10-07 17:14:07.385685529 +0000
@@ -23,7 +23,7 @@
       super(
          "",
          category,
-         ShapedRecipePattern.of(Map.of('#', Ingredient.m_xqanmytq(Items.PAPER), 'x', Ingredient.m_xqanmytq(Items.FILLED_MAP)), "###", "#x#", "###"),
+         ShapedRecipePattern.of(Map.of('#', Ingredient.ofItem(Items.PAPER), 'x', Ingredient.ofItem(Items.FILLED_MAP)), "###", "#x#", "###"),
          new ItemStack(Items.MAP)
       );
    }
diff -bur namedTargetSrc/net/minecraft/recipe/Recipe.java namedSrc/net/minecraft/recipe/Recipe.java
--- namedTargetSrc/net/minecraft/recipe/Recipe.java	2024-10-07 17:15:15.819634570 +0000
+++ namedSrc/net/minecraft/recipe/Recipe.java	2024-10-07 17:14:07.570682716 +0000
@@ -6,11 +6,11 @@
 import net.minecraft.network.RegistryByteBuf;
 import net.minecraft.network.codec.PacketCodec;
 import net.minecraft.network.codec.PacketCodecs;
+import net.minecraft.recipe.book.RecipeBookGroup;
 import net.minecraft.registry.HolderLookup;
 import net.minecraft.registry.Registries;
 import net.minecraft.registry.RegistryKeys;
 import net.minecraft.unmapped.C_mwwjmrww;
-import net.minecraft.unmapped.C_sxzvngst;
 import net.minecraft.unmapped.C_vhhfbyhp;
 import net.minecraft.world.World;
 
@@ -79,9 +79,10 @@
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_bsknoala Lnet/minecraft/unmapped/C_awrmdwqd;m_bsknoala()Ljava/lang/String;}
+    * @mapping {@literal named getGroup Lnet/minecraft/recipe/Recipe;getGroup()Ljava/lang/String;}
     */
-   default String m_bsknoala() {
+   default String getGroup() {
       return "";
    }
 
@@ -117,7 +118,8 @@
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_acqxyxru Lnet/minecraft/unmapped/C_awrmdwqd;m_acqxyxru()Lnet/minecraft/unmapped/C_sxzvngst;}
+    * @mapping {@literal named getRecipeBookCategory Lnet/minecraft/recipe/Recipe;getRecipeBookCategory()Lnet/minecraft/recipe/book/RecipeBookGroup;}
     */
-   C_sxzvngst m_acqxyxru();
+   RecipeBookGroup getRecipeBookCategory();
 }
diff -bur namedTargetSrc/net/minecraft/recipe/RecipeManager.java namedSrc/net/minecraft/recipe/RecipeManager.java
--- namedTargetSrc/net/minecraft/recipe/RecipeManager.java	2024-10-07 17:15:15.663636948 +0000
+++ namedSrc/net/minecraft/recipe/RecipeManager.java	2024-10-07 17:14:07.347686108 +0000
@@ -115,9 +115,10 @@
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_zjlbqobl Lnet/minecraft/unmapped/C_hjseusrb;m_zjlbqobl(Lnet/minecraft/unmapped/C_czxxrbcp;)V}
+    * @mapping {@literal named m_zjlbqobl Lnet/minecraft/recipe/RecipeManager;m_zjlbqobl(Lnet/minecraft/feature_flags/FeatureFlagBitSet;)V}
     */
-   public void m_zjlbqobl(FeatureFlagBitSet arg) {
+   public void m_zjlbqobl(FeatureFlagBitSet features) {
       List<Ingredient> list = new ArrayList();
       List<Ingredient> list2 = new ArrayList();
       List<Ingredient> list3 = new ArrayList();
@@ -132,9 +133,9 @@
             LOGGER.warn("Recipe {} can't be placed due to empty ingredients and will be ignored", arg2.id().getValue());
          } else {
             if (lv instanceof SmithingRecipe lv2) {
-               lv2.m_rudxpbwu().ifPresent(list3::add);
-               lv2.m_lbadbdzm().ifPresent(list2::add);
-               lv2.m_bgifrbsd().ifPresent(list::add);
+               lv2.addition().ifPresent(list3::add);
+               lv2.base().ifPresent(list2::add);
+               lv2.template().ifPresent(list::add);
             }
 
             if (lv instanceof AbstractCookingRecipe lv3) {
@@ -149,32 +150,32 @@
                }
             }
 
-            if (lv instanceof StonecuttingRecipe lv4 && m_tziaudbn(arg, lv4.m_gmwouxav()) && lv4.m_ldsgwxym().m_lvfostcp(arg)) {
+            if (lv instanceof StonecuttingRecipe lv4 && m_tziaudbn(features, lv4.m_gmwouxav()) && lv4.m_ldsgwxym().isEnabled(features)) {
                list8.add(new C_qzkacgwi.C_kkkkgrpx(lv4.m_gmwouxav(), new C_qzkacgwi(lv4.m_ldsgwxym(), Optional.of(arg2))));
             }
          }
       });
       this.f_lwdpgeem = Map.of(
          C_jgqrwysz.SMITHING_ADDITION,
-         C_jgqrwysz.m_xvjmdfru(m_enpjndth(arg, list3)),
+         C_jgqrwysz.m_xvjmdfru(m_enpjndth(features, list3)),
          C_jgqrwysz.SMITHING_BASE,
-         C_jgqrwysz.m_xvjmdfru(m_enpjndth(arg, list2)),
+         C_jgqrwysz.m_xvjmdfru(m_enpjndth(features, list2)),
          C_jgqrwysz.SMITHING_TEMPLATE,
-         C_jgqrwysz.m_xvjmdfru(m_enpjndth(arg, list)),
+         C_jgqrwysz.m_xvjmdfru(m_enpjndth(features, list)),
          C_jgqrwysz.FURNACE_INPUT,
-         C_jgqrwysz.m_xvjmdfru(m_enpjndth(arg, list4)),
+         C_jgqrwysz.m_xvjmdfru(m_enpjndth(features, list4)),
          C_jgqrwysz.BLAST_FURNACE_INPUT,
-         C_jgqrwysz.m_xvjmdfru(m_enpjndth(arg, list5)),
+         C_jgqrwysz.m_xvjmdfru(m_enpjndth(features, list5)),
          C_jgqrwysz.SMELTER_INPUT,
-         C_jgqrwysz.m_xvjmdfru(m_enpjndth(arg, list6)),
+         C_jgqrwysz.m_xvjmdfru(m_enpjndth(features, list6)),
          C_jgqrwysz.CAMPFIRE_INPUT,
-         C_jgqrwysz.m_xvjmdfru(m_enpjndth(arg, list7))
+         C_jgqrwysz.m_xvjmdfru(m_enpjndth(features, list7))
       );
       this.f_sbxhtycx = new C_qzkacgwi.C_kvadugef<>(list8);
-      this.f_avfppxeg = m_zvzhojlr(this.f_qlhewmmf.m_phpkajgc(), arg);
+      this.f_avfppxeg = m_zvzhojlr(this.f_qlhewmmf.m_phpkajgc(), features);
       this.f_yzfonsti = (Map<RegistryKey<Recipe<?>>, List<RecipeManager.C_oqjlukte>>)this.f_avfppxeg
          .stream()
-         .collect(Collectors.groupingBy(argx -> argx.parent.id(), IdentityHashMap::new, Collectors.toList()));
+         .collect(Collectors.groupingBy(arg -> arg.parent.id(), IdentityHashMap::new, Collectors.toList()));
    }
 
    /**
@@ -189,7 +190,7 @@
     * Mapping not found
     */
    private static boolean m_tziaudbn(FeatureFlagBitSet arg, Ingredient arg2) {
-      return arg2.m_hiksyixf().stream().allMatch(arg2x -> ((Item)arg2x.getValue()).enabledIn(arg));
+      return arg2.getItems().stream().allMatch(arg2x -> ((Item)arg2x.getValue()).enabledIn(arg));
    }
 
    /**
@@ -361,10 +362,10 @@
       for (RecipeHolder<?> lv : iterable) {
          Recipe<?> lv2 = lv.value();
          OptionalInt optionalInt;
-         if (lv2.m_bsknoala().isEmpty()) {
+         if (lv2.getGroup().isEmpty()) {
             optionalInt = OptionalInt.empty();
          } else {
-            optionalInt = OptionalInt.of(object2IntMap.computeIfAbsent(lv2.m_bsknoala(), object -> object2IntMap.size()));
+            optionalInt = OptionalInt.of(object2IntMap.computeIfAbsent(lv2.getGroup(), object -> object2IntMap.size()));
          }
 
          Optional<List<Ingredient>> optional;
@@ -378,7 +379,7 @@
             if (lv3.m_zcfijvyw(arg)) {
                int i = list.size();
                C_tglmjehp lv4 = new C_tglmjehp(i);
-               C_dsptsoym lv5 = new C_dsptsoym(lv4, lv3, optionalInt, lv2.m_acqxyxru(), optional);
+               C_dsptsoym lv5 = new C_dsptsoym(lv4, lv3, optionalInt, lv2.getRecipeBookCategory(), optional);
                list.add(new RecipeManager.C_oqjlukte(lv5, lv));
             }
          }
diff -bur namedTargetSrc/net/minecraft/recipe/RecipeMatcher.java namedSrc/net/minecraft/recipe/RecipeMatcher.java
--- namedTargetSrc/net/minecraft/recipe/RecipeMatcher.java	2024-10-07 17:15:15.635637374 +0000
+++ namedSrc/net/minecraft/recipe/RecipeMatcher.java	2024-10-07 17:14:07.301686810 +0000
@@ -18,65 +18,64 @@
  */
 public class RecipeMatcher<T> {
    /**
-    * Mapping not found
+    * @mapping {@literal hashed f_lzaqyyse Lnet/minecraft/unmapped/C_nyagoaau;f_lzaqyyse:Lit/unimi/dsi/fastutil/objects/Reference2IntOpenHashMap;}
+    * @mapping {@literal named amounts Lnet/minecraft/recipe/RecipeMatcher;amounts:Lit/unimi/dsi/fastutil/objects/Reference2IntOpenHashMap;}
     */
-   public final Reference2IntOpenHashMap<T> f_lzaqyyse = new Reference2IntOpenHashMap<>();
+   public final Reference2IntOpenHashMap<T> amounts = new Reference2IntOpenHashMap<>();
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_qzcfdjbc Lnet/minecraft/unmapped/C_nyagoaau;m_qzcfdjbc(Ljava/lang/Object;)Z}
+    * @mapping {@literal named hasAny Lnet/minecraft/recipe/RecipeMatcher;hasAny(Ljava/lang/Object;)Z}
     */
-   boolean m_qzcfdjbc(T object) {
-      return this.f_lzaqyyse.getInt(object) > 0;
+   boolean hasAny(T input) {
+      return this.amounts.getInt(input) > 0;
    }
 
    /**
-    * Mapping not found
+    * @mapping {@literal hashed m_uachwhuy Lnet/minecraft/unmapped/C_nyagoaau;m_uachwhuy(Ljava/lang/Object;I)Z}
+    * @mapping {@literal named hasAtLeast Lnet/minecraft/recipe/RecipeMatcher;hasAtLeast(Ljava/lang/Object;I)Z}
     */
-   boolean m_uachwhuy(T object, int i) {
-      return this.f_lzaqyyse.getInt(object) >= i;
+   boolean hasAtLeast(T input, int amount) {
+      return this.amounts.getInt(input) >= amount;
    }
 
    /**
     * Consumes a resource from the pool of available items.
     * 
-    * @param itemId the raw id of the item being consumed
-    * 
     * @mapping {@literal hashed m_okheizlq Lnet/minecraft/unmapped/C_nyagoaau;m_okheizlq(Ljava/lang/Object;I)V}
     * @mapping {@literal named consume Lnet/minecraft/recipe/RecipeMatcher;consume(Ljava/lang/Object;I)V}
     */
-   void consume(T object, int itemId) {
-      int j = this.f_lzaqyyse.addTo(object, -itemId);
-      if (j < itemId) {
-         throw new IllegalStateException("Took " + itemId + " items, but only had " + j);
+   void consume(T input, int amount) {
+      int j = this.amounts.addTo(input, -amount);
+      if (j < amount) {
+         throw new IllegalStateException("Took " + amount + " items, but only had " + j);
       }
    }
 
    /**
     * Adds an input to be used for recipe matching.
     * 
-    * @param itemId the raw ID of the item to match
-    * 
     * @mapping {@literal hashed m_wkrwvzbp Lnet/minecraft/unmapped/C_nyagoaau;m_wkrwvzbp(Ljava/lang/Object;I)V}
-    * @mapping {@literal named addInput Lnet/minecraft/recipe/RecipeMatcher;addInput(Ljava/lang/Object;I)V}
+    * @mapping {@literal named put Lnet/minecraft/recipe/RecipeMatcher;put(Ljava/lang/Object;I)V}
     */
-   void addInput(T object, int itemId) {
-      this.f_lzaqyyse.addTo(object, itemId);
+   void put(T input, int amount) {
+      this.amounts.addTo(input, amount);
    }
 
    /**
     * @mapping {@literal hashed m_yqdnhmqj Lnet/minecraft/unmapped/C_nyagoaau;m_yqdnhmqj(Ljava/util/List;ILnet/minecraft/unmapped/C_nyagoaau$C_xftfxaqa;)Z}
-    * @mapping {@literal named m_yqdnhmqj Lnet/minecraft/recipe/RecipeMatcher;m_yqdnhmqj(Ljava/util/List;ILnet/minecraft/recipe/RecipeMatcher$C_xftfxaqa;)Z}
+    * @mapping {@literal named match Lnet/minecraft/recipe/RecipeMatcher;match(Ljava/util/List;ILnet/minecraft/recipe/RecipeMatcher$ItemCallback;)Z}
     */
-   public boolean m_yqdnhmqj(List<RecipeMatcher.C_yxyoqnti<T>> ingredients, int multiplier, @Nullable RecipeMatcher.C_xftfxaqa<T> arg) {
-      return new RecipeMatcher.Matcher(ingredients).match(multiplier, arg);
+   public boolean match(List<RecipeMatcher.IngredientInfo<T>> ingredients, int multiplier, @Nullable RecipeMatcher.ItemCallback<T> callback) {
+      return new RecipeMatcher.Matcher(ingredients).match(multiplier, callback);
    }
 
    /**
     * @mapping {@literal hashed m_yhigjszt Lnet/minecraft/unmapped/C_nyagoaau;m_yhigjszt(Ljava/util/List;ILnet/minecraft/unmapped/C_nyagoaau$C_xftfxaqa;)I}
-    * @mapping {@literal named m_yhigjszt Lnet/minecraft/recipe/RecipeMatcher;m_yhigjszt(Ljava/util/List;ILnet/minecraft/recipe/RecipeMatcher$C_xftfxaqa;)I}
+    * @mapping {@literal named countCrafts Lnet/minecraft/recipe/RecipeMatcher;countCrafts(Ljava/util/List;ILnet/minecraft/recipe/RecipeMatcher$ItemCallback;)I}
     */
-   public int m_yhigjszt(List<RecipeMatcher.C_yxyoqnti<T>> ingredients, int a, @Nullable RecipeMatcher.C_xftfxaqa<T> arg) {
-      return new RecipeMatcher.Matcher(ingredients).countCrafts(a, arg);
+   public int countCrafts(List<RecipeMatcher.IngredientInfo<T>> ingredients, int a, @Nullable RecipeMatcher.ItemCallback<T> callback) {
+      return new RecipeMatcher.Matcher(ingredients).countCrafts(a, callback);
    }
 
    /**
@@ -84,40 +83,27 @@
     * @mapping {@literal named clear Lnet/minecraft/recipe/RecipeMatcher;clear()V}
     */
    public void clear() {
-      this.f_lzaqyyse.clear();
+      this.amounts.clear();
    }
 
    /**
     * @mapping {@literal hashed m_sbpnsepr Lnet/minecraft/unmapped/C_nyagoaau;m_sbpnsepr(Ljava/lang/Object;I)V}
-    * @mapping {@literal named m_sbpnsepr Lnet/minecraft/recipe/RecipeMatcher;m_sbpnsepr(Ljava/lang/Object;I)V}
+    * @mapping {@literal named account Lnet/minecraft/recipe/RecipeMatcher;account(Ljava/lang/Object;I)V}
     */
-   public void m_sbpnsepr(T object, int itemId) {
-      this.addInput(object, itemId);
-   }
-
-   /**
-    * @mapping {@literal hashed net/minecraft/unmapped/C_nyagoaau$C_xftfxaqa}
-    * @mapping {@literal named net/minecraft/recipe/RecipeMatcher$C_xftfxaqa}
-    */
-   @FunctionalInterface
-   public interface C_xftfxaqa<T> {
-      /**
-       * @mapping {@literal hashed accept Lnet/minecraft/unmapped/C_nyagoaau$C_xftfxaqa;accept(Ljava/lang/Object;)V}
-       * @mapping {@literal named accept Lnet/minecraft/recipe/RecipeMatcher$C_xftfxaqa;accept(Ljava/lang/Object;)V}
-       */
-      void accept(T object);
+   public void account(T input, int amount) {
+      this.put(input, amount);
    }
 
    /**
     * @mapping {@literal hashed net/minecraft/unmapped/C_nyagoaau$C_yxyoqnti}
-    * @mapping {@literal named net/minecraft/recipe/RecipeMatcher$C_yxyoqnti}
+    * @mapping {@literal named net/minecraft/recipe/RecipeMatcher$IngredientInfo}
     */
-   public static record C_yxyoqnti<T>(List<T> allowedItems) {
+   public static record IngredientInfo<T>(List<T> allowedItems) {
       /**
        * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_nyagoaau$C_yxyoqnti;<init>(Ljava/util/List;)V}
-       * @mapping {@literal named <init> Lnet/minecraft/recipe/RecipeMatcher$C_yxyoqnti;<init>(Ljava/util/List;)V}
+       * @mapping {@literal named <init> Lnet/minecraft/recipe/RecipeMatcher$IngredientInfo;<init>(Ljava/util/List;)V}
        */
-      public C_yxyoqnti(List<T> allowedItems) {
+      public IngredientInfo(List<T> allowedItems) {
          if (allowedItems.isEmpty()) {
             throw new IllegalArgumentException("Ingredients can't be empty");
          } else {
@@ -127,6 +113,19 @@
    }
 
    /**
+    * @mapping {@literal hashed net/minecraft/unmapped/C_nyagoaau$C_xftfxaqa}
+    * @mapping {@literal named net/minecraft/recipe/RecipeMatcher$ItemCallback}
+    */
+   @FunctionalInterface
+   public interface ItemCallback<T> {
+      /**
+       * @mapping {@literal hashed accept Lnet/minecraft/unmapped/C_nyagoaau$C_xftfxaqa;accept(Ljava/lang/Object;)V}
+       * @mapping {@literal named accept Lnet/minecraft/recipe/RecipeMatcher$ItemCallback;accept(Ljava/lang/Object;)V}
+       */
+      void accept(T item);
+   }
+
+   /**
     * @mapping {@literal hashed net/minecraft/unmapped/C_nyagoaau$C_tvjqrchc}
     * @mapping {@literal named net/minecraft/recipe/RecipeMatcher$Matcher}
     */
@@ -135,7 +134,7 @@
        * @mapping {@literal hashed f_uifobfbp Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;f_uifobfbp:Ljava/util/List;}
        * @mapping {@literal named ingredients Lnet/minecraft/recipe/RecipeMatcher$Matcher;ingredients:Ljava/util/List;}
        */
-      private final List<RecipeMatcher.C_yxyoqnti<T>> ingredients;
+      private final List<RecipeMatcher.IngredientInfo<T>> ingredients;
       /**
        * @mapping {@literal hashed f_bjsngxdw Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;f_bjsngxdw:I}
        * @mapping {@literal named totalIngredients Lnet/minecraft/recipe/RecipeMatcher$Matcher;totalIngredients:I}
@@ -166,25 +165,26 @@
        * @mapping {@literal hashed <init> Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;<init>(Lnet/minecraft/unmapped/C_nyagoaau;Ljava/util/List;)V}
        * @mapping {@literal named <init> Lnet/minecraft/recipe/RecipeMatcher$Matcher;<init>(Lnet/minecraft/recipe/RecipeMatcher;Ljava/util/List;)V}
        */
-      public Matcher(final List<RecipeMatcher.C_yxyoqnti<T>> ingredients) {
+      public Matcher(final List<RecipeMatcher.IngredientInfo<T>> ingredients) {
          this.ingredients = ingredients;
          this.totalIngredients = this.ingredients.size();
          this.requiredItems = this.createItemRequirementList();
          this.totalRequiredItems = this.requiredItems.size();
-         this.requirementsMatrix = new BitSet(this.m_pbwjzlnc() + this.m_zgebgjma() + this.m_libpjsgg() + this.m_komtahhj() + this.m_boujypjx());
-         this.m_ajdwkhsu();
+         this.requirementsMatrix = new BitSet(this.m_pbwjzlnc() + this.getTotalRequiredItems() + this.m_libpjsgg() + this.m_komtahhj() + this.m_boujypjx());
+         this.setInitialMatches();
       }
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_ajdwkhsu Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;m_ajdwkhsu()V}
+       * @mapping {@literal named setInitialMatches Lnet/minecraft/recipe/RecipeMatcher$Matcher;setInitialMatches()V}
        */
-      private void m_ajdwkhsu() {
+      private void setInitialMatches() {
          for (int i = 0; i < this.totalIngredients; i++) {
-            List<T> list = ((RecipeMatcher.C_yxyoqnti)this.ingredients.get(i)).allowedItems();
+            List<T> list = ((RecipeMatcher.IngredientInfo)this.ingredients.get(i)).allowedItems();
 
             for (int j = 0; j < this.totalRequiredItems; j++) {
                if (list.contains(this.requiredItems.get(j))) {
-                  this.m_demomdbv(j, i);
+                  this.setMatch(j, i);
                }
             }
          }
@@ -192,9 +192,9 @@
 
       /**
        * @mapping {@literal hashed m_bjscespa Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;m_bjscespa(ILnet/minecraft/unmapped/C_nyagoaau$C_xftfxaqa;)Z}
-       * @mapping {@literal named match Lnet/minecraft/recipe/RecipeMatcher$Matcher;match(ILnet/minecraft/recipe/RecipeMatcher$C_xftfxaqa;)Z}
+       * @mapping {@literal named match Lnet/minecraft/recipe/RecipeMatcher$Matcher;match(ILnet/minecraft/recipe/RecipeMatcher$ItemCallback;)Z}
        */
-      public boolean match(int multiplier, @Nullable RecipeMatcher.C_xftfxaqa<T> arg) {
+      public boolean match(int multiplier, @Nullable RecipeMatcher.ItemCallback<T> callback) {
          if (multiplier <= 0) {
             return true;
          } else {
@@ -204,7 +204,7 @@
                IntList intList = this.m_nbniwulg(multiplier);
                if (intList == null) {
                   boolean bl = j == this.totalIngredients;
-                  boolean bl2 = bl && arg != null;
+                  boolean bl2 = bl && callback != null;
                   this.m_dvqmxifj();
                   this.m_bjzdliwy();
 
@@ -212,9 +212,9 @@
                      for (int s = 0; s < this.totalRequiredItems; s++) {
                         if (this.m_yuabkvzu(s, r)) {
                            this.m_accgeeyf(s, r);
-                           RecipeMatcher.this.addInput((T)this.requiredItems.get(s), multiplier);
+                           RecipeMatcher.this.put((T)this.requiredItems.get(s), multiplier);
                            if (bl2) {
-                              arg.accept((T)this.requiredItems.get(s));
+                              callback.accept((T)this.requiredItems.get(s));
                            }
                            break;
                         }
@@ -233,7 +233,7 @@
                j++;
 
                for (int m = 0; m < intList.size() - 1; m++) {
-                  if (m_tzjdsahq(m)) {
+                  if (isIndexedItem(m)) {
                      int n = intList.getInt(m);
                      int o = intList.getInt(m + 1);
                      this.m_pgonmacr(n, o);
@@ -248,10 +248,11 @@
       }
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_tzjdsahq Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;m_tzjdsahq(I)Z}
+       * @mapping {@literal named isIndexedItem Lnet/minecraft/recipe/RecipeMatcher$Matcher;isIndexedItem(I)Z}
        */
-      private static boolean m_tzjdsahq(int i) {
-         return (i & 1) == 0;
+      private static boolean isIndexedItem(int item) {
+         return (item & 1) == 0;
       }
 
       /**
@@ -261,11 +262,11 @@
       private List<T> createItemRequirementList() {
          Set<T> set = new ReferenceOpenHashSet<>();
 
-         for (RecipeMatcher.C_yxyoqnti<T> lv : this.ingredients) {
+         for (RecipeMatcher.IngredientInfo<T> lv : this.ingredients) {
             set.addAll(lv.allowedItems());
          }
 
-         set.removeIf(object -> !RecipeMatcher.this.m_qzcfdjbc((T)object));
+         set.removeIf(object -> !RecipeMatcher.this.hasAny((T)object));
          return List.copyOf(set);
       }
 
@@ -277,7 +278,7 @@
          this.m_dvqmxifj();
 
          for (int j = 0; j < this.totalRequiredItems; j++) {
-            if (RecipeMatcher.this.m_uachwhuy((T)this.requiredItems.get(j), i)) {
+            if (RecipeMatcher.this.hasAtLeast((T)this.requiredItems.get(j), i)) {
                IntList intList = this.m_lpehiqdk(j);
                if (intList != null) {
                   return intList;
@@ -299,7 +300,7 @@
 
          while (!this.ingredientItemLookup.isEmpty()) {
             int j = this.ingredientItemLookup.size();
-            if (m_tzjdsahq(j - 1)) {
+            if (isIndexedItem(j - 1)) {
                int k = this.ingredientItemLookup.getInt(j - 1);
 
                for (int l = 0; l < this.totalIngredients; l++) {
@@ -357,9 +358,10 @@
       }
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_zgebgjma Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;m_zgebgjma()I}
+       * @mapping {@literal named getTotalRequiredItems Lnet/minecraft/recipe/RecipeMatcher$Matcher;getTotalRequiredItems()I}
        */
-      private int m_zgebgjma() {
+      private int getTotalRequiredItems() {
          return this.totalRequiredItems;
       }
 
@@ -367,7 +369,7 @@
        * Mapping not found
        */
       private int m_mlgjxqgd() {
-         return this.m_aewihvhq() + this.m_zgebgjma();
+         return this.m_aewihvhq() + this.getTotalRequiredItems();
       }
 
       /**
@@ -439,10 +441,11 @@
       }
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_demomdbv Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;m_demomdbv(II)V}
+       * @mapping {@literal named setMatch Lnet/minecraft/recipe/RecipeMatcher$Matcher;setMatch(II)V}
        */
-      private void m_demomdbv(int i, int j) {
-         this.requirementsMatrix.set(this.m_oiaawhql(i, j));
+      private void setMatch(int itemIndex, int ingredientIndex) {
+         this.requirementsMatrix.set(this.getMatchIndex(itemIndex, ingredientIndex));
       }
 
       /**
@@ -450,18 +453,19 @@
        * @mapping {@literal named needsRequirement Lnet/minecraft/recipe/RecipeMatcher$Matcher;needsRequirement(II)Z}
        */
       private boolean needsRequirement(int itemIndex, int ingredientIndex) {
-         return this.requirementsMatrix.get(this.m_oiaawhql(itemIndex, ingredientIndex));
+         return this.requirementsMatrix.get(this.getMatchIndex(itemIndex, ingredientIndex));
       }
 
       /**
-       * Mapping not found
+       * @mapping {@literal hashed m_oiaawhql Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;m_oiaawhql(II)I}
+       * @mapping {@literal named getMatchIndex Lnet/minecraft/recipe/RecipeMatcher$Matcher;getMatchIndex(II)I}
        */
-      private int m_oiaawhql(int i, int j) {
-         assert i >= 0 && i < this.totalRequiredItems;
+      private int getMatchIndex(int itemIndex, int ingredientIndex) {
+         assert itemIndex >= 0 && itemIndex < this.totalRequiredItems;
 
-         assert j >= 0 && j < this.totalIngredients;
+         assert ingredientIndex >= 0 && ingredientIndex < this.totalIngredients;
 
-         return this.m_ysneptst() + i * this.totalIngredients + j;
+         return this.m_ysneptst() + itemIndex * this.totalIngredients + ingredientIndex;
       }
 
       /**
@@ -555,7 +559,7 @@
        */
       private void m_dvqmxifj() {
          this.m_gfpblahw(this.m_zwqnriuw(), this.m_pbwjzlnc());
-         this.m_gfpblahw(this.m_aewihvhq(), this.m_zgebgjma());
+         this.m_gfpblahw(this.m_aewihvhq(), this.getTotalRequiredItems());
       }
 
       /**
@@ -568,9 +572,9 @@
 
       /**
        * @mapping {@literal hashed m_ushjqgji Lnet/minecraft/unmapped/C_nyagoaau$C_tvjqrchc;m_ushjqgji(ILnet/minecraft/unmapped/C_nyagoaau$C_xftfxaqa;)I}
-       * @mapping {@literal named countCrafts Lnet/minecraft/recipe/RecipeMatcher$Matcher;countCrafts(ILnet/minecraft/recipe/RecipeMatcher$C_xftfxaqa;)I}
+       * @mapping {@literal named countCrafts Lnet/minecraft/recipe/RecipeMatcher$Matcher;countCrafts(ILnet/minecraft/recipe/RecipeMatcher$ItemCallback;)I}
        */
-      public int countCrafts(int minimum, @Nullable RecipeMatcher.C_xftfxaqa<T> arg) {
+      public int countCrafts(int minimum, @Nullable RecipeMatcher.ItemCallback<T> callback) {
          int j = 0;
          int k = Math.min(minimum, this.getMaximumCrafts()) + 1;
 
@@ -579,7 +583,7 @@
             if (this.match(l, null)) {
                if (k - j <= 1) {
                   if (l > 0) {
-                     this.match(l, arg);
+                     this.match(l, callback);
                   }
 
                   return l;
@@ -599,11 +603,11 @@
       private int getMaximumCrafts() {
          int i = Integer.MAX_VALUE;
 
-         for (RecipeMatcher.C_yxyoqnti<T> lv : this.ingredients) {
+         for (RecipeMatcher.IngredientInfo<T> lv : this.ingredients) {
             int j = 0;
 
             for (T object : lv.allowedItems()) {
-               j = Math.max(j, RecipeMatcher.this.f_lzaqyyse.getInt(object));
+               j = Math.max(j, RecipeMatcher.this.amounts.getInt(object));
             }
 
             if (i > 0) {
diff -bur namedTargetSrc/net/minecraft/recipe/ShapedRecipe.java namedSrc/net/minecraft/recipe/ShapedRecipe.java
--- namedTargetSrc/net/minecraft/recipe/ShapedRecipe.java	2024-10-07 17:15:15.647637191 +0000
+++ namedSrc/net/minecraft/recipe/ShapedRecipe.java	2024-10-07 17:14:07.320686520 +0000
@@ -10,9 +10,9 @@
 import net.minecraft.item.Items;
 import net.minecraft.network.RegistryByteBuf;
 import net.minecraft.network.codec.PacketCodec;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.registry.HolderLookup;
 import net.minecraft.unmapped.C_cxwpjuid;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_mwwjmrww;
 import net.minecraft.unmapped.C_vhhfbyhp;
 import net.minecraft.world.World;
@@ -86,7 +86,7 @@
     * Mapping not found
     */
    @Override
-   public String m_bsknoala() {
+   public String getGroup() {
       return this.group;
    }
 
@@ -170,10 +170,10 @@
             this.pattern
                .getIngredients()
                .stream()
-               .map(optional -> (C_lahbbtfn)optional.map(Ingredient::m_lqlwthyg).orElse(C_lahbbtfn.C_gesstkjc.f_pldqhvtn))
+               .map(optional -> (SlotDisplay)optional.map(Ingredient::getSlotDisplay).orElse(SlotDisplay.EmptySlotDisplay.INSTANCE))
                .toList(),
-            new C_lahbbtfn.C_twdqwrvw(this.result),
-            new C_lahbbtfn.C_pssneihq(Items.CRAFTING_TABLE)
+            new SlotDisplay.StackSlotDisplay(this.result),
+            new SlotDisplay.ItemSlotDisplay(Items.CRAFTING_TABLE)
          )
       );
    }
diff -bur namedTargetSrc/net/minecraft/recipe/ShapedRecipePattern.java namedSrc/net/minecraft/recipe/ShapedRecipePattern.java
--- namedTargetSrc/net/minecraft/recipe/ShapedRecipePattern.java	2024-10-07 17:15:15.623637557 +0000
+++ namedSrc/net/minecraft/recipe/ShapedRecipePattern.java	2024-10-07 17:14:07.290686978 +0000
@@ -51,7 +51,7 @@
       arg -> arg.width,
       PacketCodecs.VAR_INT,
       arg -> arg.height,
-      Ingredient.f_qdqdigpw.apply(PacketCodecs.toCollection()),
+      Ingredient.OPTIONAL_PACKET_CODEC.apply(PacketCodecs.toCollection()),
       arg -> arg.ingredients,
       ShapedRecipePattern::m_oycgezfb
    );
@@ -263,7 +263,7 @@
             }
 
             ItemStack lv = input.get(j, i);
-            if (!Ingredient.m_nomwikbn(optional, lv)) {
+            if (!Ingredient.testOptionalIngredient(optional, lv)) {
                return false;
             }
          }
diff -bur namedTargetSrc/net/minecraft/recipe/ShapelessRecipe.java namedSrc/net/minecraft/recipe/ShapelessRecipe.java
--- namedTargetSrc/net/minecraft/recipe/ShapelessRecipe.java	2024-10-07 17:15:15.635637374 +0000
+++ namedSrc/net/minecraft/recipe/ShapelessRecipe.java	2024-10-07 17:14:07.302686795 +0000
@@ -9,8 +9,8 @@
 import net.minecraft.network.RegistryByteBuf;
 import net.minecraft.network.codec.PacketCodec;
 import net.minecraft.network.codec.PacketCodecs;
+import net.minecraft.recipe.display.SlotDisplay;
 import net.minecraft.registry.HolderLookup;
-import net.minecraft.unmapped.C_lahbbtfn;
 import net.minecraft.unmapped.C_mwwjmrww;
 import net.minecraft.unmapped.C_ssetfehe;
 import net.minecraft.unmapped.C_vhhfbyhp;
@@ -71,7 +71,7 @@
     * Mapping not found
     */
    @Override
-   public String m_bsknoala() {
+   public String getGroup() {
       return this.group;
    }
 
@@ -124,9 +124,9 @@
    public List<C_vhhfbyhp> m_kwgjnprn() {
       return List.of(
          new C_ssetfehe(
-            this.ingredients.stream().map(Ingredient::m_lqlwthyg).toList(),
-            new C_lahbbtfn.C_twdqwrvw(this.result),
-            new C_lahbbtfn.C_pssneihq(Items.CRAFTING_TABLE)
+            this.ingredients.stream().map(Ingredient::getSlotDisplay).toList(),
+            new SlotDisplay.StackSlotDisplay(this.result),
+            new SlotDisplay.ItemSlotDisplay(Items.CRAFTING_TABLE)
          )
       );
    }
diff -bur namedTargetSrc/net/minecraft/recipe/SmeltingRecipe.java namedSrc/net/minecraft/recipe/SmeltingRecipe.java
--- namedTargetSrc/net/minecraft/recipe/SmeltingRecipe.java	2024-10-07 17:15:15.714636170 +0000
+++ namedSrc/net/minecraft/recipe/SmeltingRecipe.java	2024-10-07 17:14:07.423684951 +0000
@@ -3,7 +3,7 @@
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.item.Items;
-import net.minecraft.unmapped.C_sxzvngst;
+import net.minecraft.recipe.book.RecipeBookGroup;
 
 /**
  * @mapping {@literal hashed net/minecraft/unmapped/C_nfrxrwyq}
@@ -22,7 +22,7 @@
     * Mapping not found
     */
    @Override
-   protected Item m_iedtbqqy() {
+   protected Item getWorkstation() {
       return Items.FURNACE;
    }
 
@@ -46,11 +46,11 @@
     * Mapping not found
     */
    @Override
-   public C_sxzvngst m_acqxyxru() {
+   public RecipeBookGroup getRecipeBookCategory() {
       return switch (this.getCategory()) {
-         case BLOCKS -> C_sxzvngst.FURNACE_BLOCKS;
-         case FOOD -> C_sxzvngst.FURNACE_FOOD;
-         case MISC -> C_sxzvngst.FURNACE_MISC;
+         case BLOCKS -> RecipeBookGroup.FURNACE_BLOCKS;
+         case FOOD -> RecipeBookGroup.FURNACE_FOOD;
+         case MISC -> RecipeBookGroup.FURNACE_MISC;
       };
    }
 }


The remaining diff is too long!

Please sign in to comment.