From fb6feac92f13b59f137de50a26b936efbaea64e0 Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Tue, 27 Sep 2016 18:03:57 +0200 Subject: [PATCH] update to JEI 3.11 (#757) --- .../compat/jei/BaseRecipeWrapper.java | 8 +++ .../techreborn/compat/jei/RecipeUtil.java | 50 +++++++++++++++++++ .../AlloySmelterRecipeCategory.java | 22 +++++--- .../AssemblingMachineRecipeCategory.java | 22 +++++--- .../BlastFurnaceRecipeCategory.java | 23 ++++++--- .../centrifuge/CentrifugeRecipeCategory.java | 26 +++++++--- .../ChemicalReactorRecipeCategory.java | 23 ++++++--- .../compressor/CompressorRecipeCategory.java | 22 +++++--- .../extractor/ExtractorRecipeCategory.java | 22 +++++--- .../FusionReactorRecipeCategory.java | 29 +++++++---- .../FusionReactorRecipeWrapper.java | 8 +++ .../jei/grinder/GrinderRecipeCategory.java | 22 +++++--- .../ImplosionCompressorRecipeCategory.java | 24 ++++++--- .../IndustrialElectrolyzerRecipeCategory.java | 25 +++++++--- .../IndustrialGrinderRecipeCategory.java | 29 ++++++++--- .../RollingMachineRecipeCategory.java | 29 ++++++++--- .../RollingMachineRecipeWrapper.java | 7 +++ .../jei/scrapbox/ScrapboxRecipeCategory.java | 22 +++++--- .../VacuumFreezerRecipeCategory.java | 22 +++++--- src/main/java/techreborn/lib/ModInfo.java | 2 +- 20 files changed, 330 insertions(+), 107 deletions(-) diff --git a/src/main/java/techreborn/compat/jei/BaseRecipeWrapper.java b/src/main/java/techreborn/compat/jei/BaseRecipeWrapper.java index 1917f5f48..ee84120a3 100644 --- a/src/main/java/techreborn/compat/jei/BaseRecipeWrapper.java +++ b/src/main/java/techreborn/compat/jei/BaseRecipeWrapper.java @@ -8,6 +8,7 @@ import java.util.Set; import javax.annotation.Nonnull; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -66,6 +67,13 @@ public abstract class BaseRecipeWrapper extends BlankRecip return new ArrayList<>(itemStackSet); } + @Override + public void getIngredients(@Nonnull IIngredients ingredients) + { + ingredients.setInputLists(ItemStack.class, inputs); + ingredients.setOutputs(ItemStack.class, baseRecipe.getOutputs()); + } + @Nonnull @Override public List> getInputs() diff --git a/src/main/java/techreborn/compat/jei/RecipeUtil.java b/src/main/java/techreborn/compat/jei/RecipeUtil.java index 59ece810e..5752a2811 100644 --- a/src/main/java/techreborn/compat/jei/RecipeUtil.java +++ b/src/main/java/techreborn/compat/jei/RecipeUtil.java @@ -10,6 +10,7 @@ import javax.annotation.Nullable; import mezz.jei.api.gui.IGuiFluidStackGroup; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.item.ItemStack; @@ -59,6 +60,7 @@ public class RecipeUtil fontRendererObj.drawString(processingTimeString2, x + 10, y, color); } + @Deprecated public static void setRecipeItems(@Nonnull IRecipeLayout recipeLayout, @Nonnull BaseRecipeWrapper recipe, @Nullable int[] itemInputSlots, @Nullable int[] itemOutputSlots, @Nullable int[] fluidInputSlots, @Nullable int[] fluidOutputSlots) @@ -106,4 +108,52 @@ public class RecipeUtil } } } + + public static void setRecipeItems(@Nonnull IRecipeLayout recipeLayout, @Nonnull IIngredients ingredients, + @Nullable int[] itemInputSlots, @Nullable int[] itemOutputSlots, @Nullable int[] fluidInputSlots, + @Nullable int[] fluidOutputSlots) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + IGuiFluidStackGroup guiFluidStacks = recipeLayout.getFluidStacks(); + + if (itemInputSlots != null) + { + List> inputs = ingredients.getInputs(ItemStack.class); + for (int i = 0; i < inputs.size() && i < itemInputSlots.length; i++) + { + int inputSlot = itemInputSlots[i]; + guiItemStacks.set(inputSlot, inputs.get(i)); + } + } + + if (itemOutputSlots != null) + { + List outputs = ingredients.getOutputs(ItemStack.class); + for (int i = 0; i < outputs.size() && i < itemOutputSlots.length; i++) + { + int outputSlot = itemOutputSlots[i]; + guiItemStacks.set(outputSlot, outputs.get(i)); + } + } + + if (fluidInputSlots != null) + { + List> fluidInputs = ingredients.getInputs(FluidStack.class); + for (int i = 0; i < fluidInputs.size() && i < fluidInputSlots.length; i++) + { + int inputTank = fluidInputSlots[i]; + guiFluidStacks.set(inputTank, fluidInputs.get(i)); + } + } + + if (fluidOutputSlots != null) + { + List fluidOutputs = ingredients.getOutputs(FluidStack.class); + for (int i = 0; i < fluidOutputs.size() && i < fluidOutputSlots.length; i++) + { + int outputTank = fluidOutputSlots[i]; + guiFluidStacks.set(outputTank, fluidOutputs.get(i)); + } + } + } } diff --git a/src/main/java/techreborn/compat/jei/alloySmelter/AlloySmelterRecipeCategory.java b/src/main/java/techreborn/compat/jei/alloySmelter/AlloySmelterRecipeCategory.java index 12f4310db..984a970e8 100644 --- a/src/main/java/techreborn/compat/jei/alloySmelter/AlloySmelterRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/alloySmelter/AlloySmelterRecipeCategory.java @@ -8,6 +8,7 @@ import mezz.jei.api.gui.IDrawableAnimated; import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.client.Minecraft; @@ -16,7 +17,7 @@ import techreborn.client.gui.GuiAlloySmelter; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class AlloySmelterRecipeCategory extends BlankRecipeCategory +public class AlloySmelterRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2 }; @@ -62,17 +63,24 @@ public class AlloySmelterRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull AlloySmelterRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); guiItemStacks.init(INPUT_SLOTS[1], true, 18, 0); guiItemStacks.init(OUTPUT_SLOTS[0], false, 69, 18); - if (recipeWrapper instanceof AlloySmelterRecipeWrapper) - { - AlloySmelterRecipeWrapper recipe = (AlloySmelterRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull AlloySmelterRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); + guiItemStacks.init(INPUT_SLOTS[1], true, 18, 0); + guiItemStacks.init(OUTPUT_SLOTS[0], false, 69, 18); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/assemblingMachine/AssemblingMachineRecipeCategory.java b/src/main/java/techreborn/compat/jei/assemblingMachine/AssemblingMachineRecipeCategory.java index 5ce41de8d..9e8c6b08e 100644 --- a/src/main/java/techreborn/compat/jei/assemblingMachine/AssemblingMachineRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/assemblingMachine/AssemblingMachineRecipeCategory.java @@ -8,6 +8,7 @@ import mezz.jei.api.gui.IDrawableAnimated; import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.client.Minecraft; @@ -16,7 +17,7 @@ import techreborn.client.gui.GuiAssemblingMachine; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class AssemblingMachineRecipeCategory extends BlankRecipeCategory +public class AssemblingMachineRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2 }; @@ -62,17 +63,24 @@ public class AssemblingMachineRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull AssemblingMachineRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); guiItemStacks.init(INPUT_SLOTS[1], true, 18, 0); guiItemStacks.init(OUTPUT_SLOTS[0], false, 69, 18); - if (recipeWrapper instanceof AssemblingMachineRecipeWrapper) - { - AssemblingMachineRecipeWrapper recipe = (AssemblingMachineRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull AssemblingMachineRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); + guiItemStacks.init(INPUT_SLOTS[1], true, 18, 0); + guiItemStacks.init(OUTPUT_SLOTS[0], false, 69, 18); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/blastFurnace/BlastFurnaceRecipeCategory.java b/src/main/java/techreborn/compat/jei/blastFurnace/BlastFurnaceRecipeCategory.java index a6c4f5376..7e9eff703 100644 --- a/src/main/java/techreborn/compat/jei/blastFurnace/BlastFurnaceRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/blastFurnace/BlastFurnaceRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiBlastFurnace; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class BlastFurnaceRecipeCategory extends BlankRecipeCategory +public class BlastFurnaceRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2, 3 }; @@ -49,7 +50,7 @@ public class BlastFurnaceRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull BlastFurnaceRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); @@ -57,10 +58,18 @@ public class BlastFurnaceRecipeCategory extends BlankRecipeCategory guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 10); guiItemStacks.init(OUTPUT_SLOTS[1], false, 78, 10); - if (recipeWrapper instanceof BlastFurnaceRecipeWrapper) - { - BlastFurnaceRecipeWrapper recipe = (BlastFurnaceRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull BlastFurnaceRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); + guiItemStacks.init(INPUT_SLOTS[1], true, 0, 18); + guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 10); + guiItemStacks.init(OUTPUT_SLOTS[1], false, 78, 10); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/centrifuge/CentrifugeRecipeCategory.java b/src/main/java/techreborn/compat/jei/centrifuge/CentrifugeRecipeCategory.java index c5486265a..39a74a8d0 100644 --- a/src/main/java/techreborn/compat/jei/centrifuge/CentrifugeRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/centrifuge/CentrifugeRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiCentrifuge; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class CentrifugeRecipeCategory extends BlankRecipeCategory +public class CentrifugeRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2, 3, 4, 5 }; @@ -49,7 +50,7 @@ public class CentrifugeRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull CentrifugeRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 30, 30); @@ -60,10 +61,21 @@ public class CentrifugeRecipeCategory extends BlankRecipeCategory guiItemStacks.init(OUTPUT_SLOTS[2], false, 30, 60); guiItemStacks.init(OUTPUT_SLOTS[3], false, 0, 30); - if (recipeWrapper instanceof CentrifugeRecipeWrapper) - { - CentrifugeRecipeWrapper recipe = (CentrifugeRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull CentrifugeRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 30, 30); + guiItemStacks.init(INPUT_SLOTS[1], true, 0, 0); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 30, 0); + guiItemStacks.init(OUTPUT_SLOTS[1], false, 60, 30); + guiItemStacks.init(OUTPUT_SLOTS[2], false, 30, 60); + guiItemStacks.init(OUTPUT_SLOTS[3], false, 0, 30); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/chemicalReactor/ChemicalReactorRecipeCategory.java b/src/main/java/techreborn/compat/jei/chemicalReactor/ChemicalReactorRecipeCategory.java index ea0de6815..2ff64b427 100644 --- a/src/main/java/techreborn/compat/jei/chemicalReactor/ChemicalReactorRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/chemicalReactor/ChemicalReactorRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiChemicalReactor; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class ChemicalReactorRecipeCategory extends BlankRecipeCategory +public class ChemicalReactorRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2 }; @@ -49,7 +50,7 @@ public class ChemicalReactorRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ChemicalReactorRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); @@ -57,10 +58,18 @@ public class ChemicalReactorRecipeCategory extends BlankRecipeCategory guiItemStacks.init(OUTPUT_SLOTS[0], false, 10, 30); - if (recipeWrapper instanceof ChemicalReactorRecipeWrapper) - { - ChemicalReactorRecipeWrapper recipe = (ChemicalReactorRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ChemicalReactorRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 0); + guiItemStacks.init(INPUT_SLOTS[1], true, 20, 0); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 10, 30); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/compressor/CompressorRecipeCategory.java b/src/main/java/techreborn/compat/jei/compressor/CompressorRecipeCategory.java index ac69b2ba2..cfe66f824 100644 --- a/src/main/java/techreborn/compat/jei/compressor/CompressorRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/compressor/CompressorRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiCompressor; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class CompressorRecipeCategory extends BlankRecipeCategory +public class CompressorRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0 }; private static final int[] OUTPUT_SLOTS = { 1 }; @@ -49,17 +50,24 @@ public class CompressorRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull CompressorRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); - if (recipeWrapper instanceof CompressorRecipeWrapper) - { - CompressorRecipeWrapper recipe = (CompressorRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull CompressorRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/extractor/ExtractorRecipeCategory.java b/src/main/java/techreborn/compat/jei/extractor/ExtractorRecipeCategory.java index e56120a5a..42125eee0 100644 --- a/src/main/java/techreborn/compat/jei/extractor/ExtractorRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/extractor/ExtractorRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiExtractor; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class ExtractorRecipeCategory extends BlankRecipeCategory +public class ExtractorRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0 }; private static final int[] OUTPUT_SLOTS = { 1 }; @@ -49,17 +50,24 @@ public class ExtractorRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ExtractorRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); - if (recipeWrapper instanceof ExtractorRecipeWrapper) - { - ExtractorRecipeWrapper recipe = (ExtractorRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ExtractorRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeCategory.java b/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeCategory.java index 6703db449..3275bea4b 100644 --- a/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeCategory.java @@ -6,13 +6,15 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; +import net.minecraft.item.ItemStack; import net.minecraft.util.text.translation.I18n; import techreborn.client.gui.GuiFusionReactor; import techreborn.compat.jei.RecipeCategoryUids; -public class FusionReactorRecipeCategory extends BlankRecipeCategory +public class FusionReactorRecipeCategory extends BlankRecipeCategory { private static final int inputSlotTop = 0; @@ -52,20 +54,29 @@ public class FusionReactorRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull FusionReactorRecipeWrapper recipeWrapper) { IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); itemStacks.init(inputSlotTop, true, 21, 0); itemStacks.init(inputSlotBottom, true, 21, 36); itemStacks.init(outputSlot, false, 81, 18); - if (recipeWrapper instanceof FusionReactorRecipeWrapper) - { - FusionReactorRecipeWrapper fusionRecipe = (FusionReactorRecipeWrapper) recipeWrapper; - itemStacks.set(inputSlotTop, fusionRecipe.getTopInput()); - itemStacks.set(inputSlotBottom, fusionRecipe.getBottomInput()); - itemStacks.set(outputSlot, fusionRecipe.getOutputs()); - } + itemStacks.set(inputSlotTop, recipeWrapper.getTopInput()); + itemStacks.set(inputSlotBottom, recipeWrapper.getBottomInput()); + itemStacks.set(outputSlot, recipeWrapper.getOutputs()); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull FusionReactorRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); + itemStacks.init(inputSlotTop, true, 21, 0); + itemStacks.init(inputSlotBottom, true, 21, 36); + itemStacks.init(outputSlot, false, 81, 18); + + itemStacks.set(inputSlotTop, recipeWrapper.getTopInput()); + itemStacks.set(inputSlotBottom, recipeWrapper.getBottomInput()); + itemStacks.set(outputSlot, ingredients.getOutputs(ItemStack.class)); } } diff --git a/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeWrapper.java b/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeWrapper.java index e44b9c733..d33ca2f7a 100644 --- a/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeWrapper.java +++ b/src/main/java/techreborn/compat/jei/fusionReactor/FusionReactorRecipeWrapper.java @@ -6,6 +6,7 @@ import java.util.List; import javax.annotation.Nonnull; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -21,6 +22,13 @@ public class FusionReactorRecipeWrapper extends BlankRecipeWrapper this.baseRecipe = baseRecipe; } + @Override + public void getIngredients(@Nonnull IIngredients ingredients) + { + ingredients.setOutputs(ItemStack.class, Arrays.asList(baseRecipe.getTopInput(), baseRecipe.getBottomInput())); + ingredients.setInput(ItemStack.class, baseRecipe.getOutput()); + } + @Override @Nonnull public List getInputs() diff --git a/src/main/java/techreborn/compat/jei/grinder/GrinderRecipeCategory.java b/src/main/java/techreborn/compat/jei/grinder/GrinderRecipeCategory.java index 56e6c92b1..6bbb2176f 100644 --- a/src/main/java/techreborn/compat/jei/grinder/GrinderRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/grinder/GrinderRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiGrinder; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class GrinderRecipeCategory extends BlankRecipeCategory +public class GrinderRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0 }; private static final int[] OUTPUT_SLOTS = { 1 }; @@ -49,17 +50,24 @@ public class GrinderRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull GrinderRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); - if (recipeWrapper instanceof GrinderRecipeWrapper) - { - GrinderRecipeWrapper recipe = (GrinderRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull GrinderRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/implosionCompressor/ImplosionCompressorRecipeCategory.java b/src/main/java/techreborn/compat/jei/implosionCompressor/ImplosionCompressorRecipeCategory.java index e9f859da8..b1c2ea888 100644 --- a/src/main/java/techreborn/compat/jei/implosionCompressor/ImplosionCompressorRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/implosionCompressor/ImplosionCompressorRecipeCategory.java @@ -8,6 +8,7 @@ import mezz.jei.api.gui.IDrawableAnimated; import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.client.Minecraft; @@ -16,7 +17,7 @@ import techreborn.client.gui.GuiImplosionCompressor; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class ImplosionCompressorRecipeCategory extends BlankRecipeCategory +public class ImplosionCompressorRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2, 3 }; @@ -62,7 +63,7 @@ public class ImplosionCompressorRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ImplosionCompressorRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 20, 0); @@ -71,10 +72,19 @@ public class ImplosionCompressorRecipeCategory extends BlankRecipeCategory guiItemStacks.init(OUTPUT_SLOTS[0], false, 76, 9); guiItemStacks.init(OUTPUT_SLOTS[1], false, 94, 9); - if (recipeWrapper instanceof ImplosionCompressorRecipeWrapper) - { - ImplosionCompressorRecipeWrapper recipe = (ImplosionCompressorRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ImplosionCompressorRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 20, 0); + guiItemStacks.init(INPUT_SLOTS[1], true, 20, 18); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 76, 9); + guiItemStacks.init(OUTPUT_SLOTS[1], false, 94, 9); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/industrialElectrolyzer/IndustrialElectrolyzerRecipeCategory.java b/src/main/java/techreborn/compat/jei/industrialElectrolyzer/IndustrialElectrolyzerRecipeCategory.java index 089c948f5..f8c355cbc 100644 --- a/src/main/java/techreborn/compat/jei/industrialElectrolyzer/IndustrialElectrolyzerRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/industrialElectrolyzer/IndustrialElectrolyzerRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiIndustrialElectrolyzer; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class IndustrialElectrolyzerRecipeCategory extends BlankRecipeCategory +public class IndustrialElectrolyzerRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2, 3, 4, 5 }; @@ -49,7 +50,7 @@ public class IndustrialElectrolyzerRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IndustrialElectrolyzerRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 30, 32); @@ -59,10 +60,20 @@ public class IndustrialElectrolyzerRecipeCategory extends BlankRecipeCategory guiItemStacks.init(OUTPUT_SLOTS[2], false, 40, 0); guiItemStacks.init(OUTPUT_SLOTS[3], false, 60, 0); - if (recipeWrapper instanceof IndustrialElectrolyzerRecipeWrapper) - { - IndustrialElectrolyzerRecipeWrapper recipe = (IndustrialElectrolyzerRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IndustrialElectrolyzerRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 30, 32); + guiItemStacks.init(INPUT_SLOTS[1], true, 0, 32); + guiItemStacks.init(OUTPUT_SLOTS[0], false, 0, 0); + guiItemStacks.init(OUTPUT_SLOTS[1], false, 20, 0); + guiItemStacks.init(OUTPUT_SLOTS[2], false, 40, 0); + guiItemStacks.init(OUTPUT_SLOTS[3], false, 60, 0); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/industrialGrinder/IndustrialGrinderRecipeCategory.java b/src/main/java/techreborn/compat/jei/industrialGrinder/IndustrialGrinderRecipeCategory.java index 4480d62ae..b55110669 100644 --- a/src/main/java/techreborn/compat/jei/industrialGrinder/IndustrialGrinderRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/industrialGrinder/IndustrialGrinderRecipeCategory.java @@ -7,6 +7,7 @@ import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiFluidStackGroup; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.client.Minecraft; @@ -16,7 +17,7 @@ import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; import techreborn.tiles.multiblock.TileIndustrialGrinder; -public class IndustrialGrinderRecipeCategory extends BlankRecipeCategory +public class IndustrialGrinderRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1 }; private static final int[] OUTPUT_SLOTS = { 2, 3, 4, 5 }; @@ -64,7 +65,7 @@ public class IndustrialGrinderRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IndustrialGrinderRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 24, 10); @@ -78,10 +79,24 @@ public class IndustrialGrinderRecipeCategory extends BlankRecipeCategory IGuiFluidStackGroup guiFluidStacks = recipeLayout.getFluidStacks(); guiFluidStacks.init(INPUT_TANKS[0], true, 4, 4, 12, 47, TileIndustrialGrinder.TANK_CAPACITY, true, tankOverlay); - if (recipeWrapper instanceof IndustrialGrinderRecipeWrapper) - { - IndustrialGrinderRecipeWrapper recipe = (IndustrialGrinderRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, INPUT_TANKS, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, INPUT_TANKS, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IndustrialGrinderRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 24, 10); + guiItemStacks.init(INPUT_SLOTS[1], true, 24, 28); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 69, 19); + guiItemStacks.init(OUTPUT_SLOTS[1], false, 87, 19); + guiItemStacks.init(OUTPUT_SLOTS[2], false, 105, 19); + guiItemStacks.init(OUTPUT_SLOTS[3], false, 123, 19); + + IGuiFluidStackGroup guiFluidStacks = recipeLayout.getFluidStacks(); + guiFluidStacks.init(INPUT_TANKS[0], true, 4, 4, 12, 47, TileIndustrialGrinder.TANK_CAPACITY, true, tankOverlay); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, INPUT_TANKS, null); } } diff --git a/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeCategory.java b/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeCategory.java index b3eb5b987..5a4e3c489 100644 --- a/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeCategory.java @@ -9,14 +9,16 @@ import mezz.jei.api.gui.IDrawableAnimated; import mezz.jei.api.gui.IDrawableStatic; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; import net.minecraft.util.text.translation.I18n; import techreborn.client.gui.GuiRollingMachine; import techreborn.compat.jei.RecipeCategoryUids; -public class RollingMachineRecipeCategory extends BlankRecipeCategory +public class RollingMachineRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; private static final int[] OUTPUT_SLOTS = { 10 }; @@ -65,7 +67,7 @@ public class RollingMachineRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull RollingMachineRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); for (int l = 0; l < 3; l++) @@ -79,11 +81,26 @@ public class RollingMachineRecipeCategory extends BlankRecipeCategory guiItemStacks.init(OUTPUT_SLOTS[0], false, 94, 18); - if (recipeWrapper instanceof RollingMachineRecipeWrapper) + craftingGridHelper.setInput(guiItemStacks, recipeWrapper.getInputs()); + craftingGridHelper.setOutput(guiItemStacks, recipeWrapper.getOutputs()); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull RollingMachineRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + for (int l = 0; l < 3; l++) { - RollingMachineRecipeWrapper recipe = (RollingMachineRecipeWrapper) recipeWrapper; - craftingGridHelper.setInput(guiItemStacks, recipe.getInputs()); - craftingGridHelper.setOutput(guiItemStacks, recipe.getOutputs()); + for (int k1 = 0; k1 < 3; k1++) + { + int i = k1 + l * 3; + guiItemStacks.init(INPUT_SLOTS[i], true, k1 * 18, l * 18); + } } + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 94, 18); + + craftingGridHelper.setInputStacks(guiItemStacks, ingredients.getInputs(ItemStack.class)); + craftingGridHelper.setOutput(guiItemStacks, ingredients.getOutputs(ItemStack.class)); } } diff --git a/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeWrapper.java b/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeWrapper.java index 2d1ff997d..b57fb12a4 100644 --- a/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeWrapper.java +++ b/src/main/java/techreborn/compat/jei/rollingMachine/RollingMachineRecipeWrapper.java @@ -7,6 +7,7 @@ import javax.annotation.Nullable; import mezz.jei.api.IGuiHelper; import mezz.jei.api.IJeiHelpers; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; import mezz.jei.api.recipe.wrapper.ICraftingRecipeWrapper; import mezz.jei.plugins.vanilla.crafting.ShapedOreRecipeWrapper; @@ -57,6 +58,12 @@ public class RollingMachineRecipeWrapper extends BlankRecipeWrapper implements I return new RollingMachineRecipeWrapper(recipeWrapper); } + @Override + public void getIngredients(@Nonnull IIngredients ingredients) + { + baseRecipe.getIngredients(ingredients); + } + @Override @Nonnull public List getInputs() diff --git a/src/main/java/techreborn/compat/jei/scrapbox/ScrapboxRecipeCategory.java b/src/main/java/techreborn/compat/jei/scrapbox/ScrapboxRecipeCategory.java index 0c52b87e3..dbb21b840 100644 --- a/src/main/java/techreborn/compat/jei/scrapbox/ScrapboxRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/scrapbox/ScrapboxRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiCompressor; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class ScrapboxRecipeCategory extends BlankRecipeCategory +public class ScrapboxRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0 }; private static final int[] OUTPUT_SLOTS = { 1 }; @@ -49,17 +50,24 @@ public class ScrapboxRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ScrapboxRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); - if (recipeWrapper instanceof ScrapboxRecipeWrapper) - { - ScrapboxRecipeWrapper recipe = (ScrapboxRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull ScrapboxRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/compat/jei/vacuumFreezer/VacuumFreezerRecipeCategory.java b/src/main/java/techreborn/compat/jei/vacuumFreezer/VacuumFreezerRecipeCategory.java index 994ecc9a4..537694c24 100644 --- a/src/main/java/techreborn/compat/jei/vacuumFreezer/VacuumFreezerRecipeCategory.java +++ b/src/main/java/techreborn/compat/jei/vacuumFreezer/VacuumFreezerRecipeCategory.java @@ -6,6 +6,7 @@ import mezz.jei.api.IGuiHelper; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IGuiItemStackGroup; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.util.text.translation.I18n; @@ -13,7 +14,7 @@ import techreborn.client.gui.GuiVacuumFreezer; import techreborn.compat.jei.RecipeCategoryUids; import techreborn.compat.jei.RecipeUtil; -public class VacuumFreezerRecipeCategory extends BlankRecipeCategory +public class VacuumFreezerRecipeCategory extends BlankRecipeCategory { private static final int[] INPUT_SLOTS = { 0 }; private static final int[] OUTPUT_SLOTS = { 1 }; @@ -49,17 +50,24 @@ public class VacuumFreezerRecipeCategory extends BlankRecipeCategory } @Override - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull VacuumFreezerRecipeWrapper recipeWrapper) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); - if (recipeWrapper instanceof VacuumFreezerRecipeWrapper) - { - VacuumFreezerRecipeWrapper recipe = (VacuumFreezerRecipeWrapper) recipeWrapper; - RecipeUtil.setRecipeItems(recipeLayout, recipe, INPUT_SLOTS, OUTPUT_SLOTS, null, null); - } + RecipeUtil.setRecipeItems(recipeLayout, recipeWrapper, INPUT_SLOTS, OUTPUT_SLOTS, null, null); + } + + @Override + public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull VacuumFreezerRecipeWrapper recipeWrapper, @Nonnull IIngredients ingredients) + { + IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); + guiItemStacks.init(INPUT_SLOTS[0], true, 0, 3); + + guiItemStacks.init(OUTPUT_SLOTS[0], false, 60, 4); + + RecipeUtil.setRecipeItems(recipeLayout, ingredients, INPUT_SLOTS, OUTPUT_SLOTS, null, null); } } diff --git a/src/main/java/techreborn/lib/ModInfo.java b/src/main/java/techreborn/lib/ModInfo.java index d9dc899c0..f17946652 100644 --- a/src/main/java/techreborn/lib/ModInfo.java +++ b/src/main/java/techreborn/lib/ModInfo.java @@ -7,7 +7,7 @@ public class ModInfo implements IModInfo public static final String MOD_NAME = "TechReborn"; public static final String MOD_ID = "techreborn"; public static final String MOD_VERSION = "@MODVERSION@"; - public static final String MOD_DEPENDENCIES = "required-after:Forge@[11.15.0.1609,);required-after:reborncore;after:JEI@[2.14,);after:IC2"; + public static final String MOD_DEPENDENCIES = "required-after:Forge@[11.15.0.1609,);required-after:reborncore;after:JEI@[3.11,);after:IC2"; public static final String SERVER_PROXY_CLASS = "techreborn.proxies.CommonProxy"; public static final String CLIENT_PROXY_CLASS = "techreborn.proxies.ClientProxy"; public static final String GUI_FACTORY_CLASS = "techreborn.config.TechRebornGUIFactory";