From 574056203d05738b19fd2283e3e504efeb81c3ba Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Mon, 2 Jan 2017 01:18:02 -0800 Subject: [PATCH] Fix JEI compat --- .../compat/jei/BloodMagicPlugin.java | 19 ++---- .../jei/CompatibilityJustEnoughItems.java | 24 -------- .../AlchemyArrayCraftingCategory.java | 7 +-- .../AlchemyArrayCraftingRecipeHandler.java | 2 +- .../AlchemyArrayCraftingRecipeJEI.java | 8 +-- .../AlchemyTableRecipeCategory.java | 2 +- .../AlchemyTableRecipeHandler.java | 2 +- .../alchemyTable/AlchemyTableRecipeJEI.java | 8 ++- .../compat/jei/altar/AltarRecipeCategory.java | 6 +- .../compat/jei/altar/AltarRecipeHandler.java | 2 +- .../compat/jei/altar/AltarRecipeJEI.java | 7 +-- .../ArmourDowngradeRecipeCategory.java | 7 ++- .../ArmourDowngradeRecipeJEI.java | 8 ++- .../jei/binding/BindingRecipeCategory.java | 21 ++++--- .../jei/binding/BindingRecipeHandler.java | 10 +--- .../compat/jei/binding/BindingRecipeJEI.java | 21 ++----- .../forge/TartaricForgeRecipeCategory.java | 24 +++++--- .../jei/forge/TartaricForgeRecipeHandler.java | 10 +--- .../jei/forge/TartaricForgeRecipeJEI.java | 28 ++++----- .../jei/orb/ShapedOrbRecipeHandler.java | 8 --- .../compat/jei/orb/ShapedOrbRecipeJEI.java | 59 ++++--------------- .../jei/orb/ShapelessOrbRecipeHandler.java | 8 --- .../compat/jei/orb/ShapelessOrbRecipeJEI.java | 53 +++-------------- 23 files changed, 100 insertions(+), 244 deletions(-) delete mode 100644 src/main/java/WayofTime/bloodmagic/compat/jei/CompatibilityJustEnoughItems.java diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java b/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java index 9399aee5..31f609e9 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/BloodMagicPlugin.java @@ -56,8 +56,8 @@ public class BloodMagicPlugin extends BlankModPlugin registry.addRecipes(AlchemyTableRecipeMaker.getRecipes()); registry.addRecipes(ArmourDowngradeRecipeMaker.getRecipes()); - registry.addDescription(new ItemStack(ModItems.ALTAR_MAKER), "jei.BloodMagic.desc.altarBuilder"); - registry.addDescription(new ItemStack(ModItems.MONSTER_SOUL), "jei.BloodMagic.desc.demonicWill"); + registry.addDescription(new ItemStack(ModItems.ALTAR_MAKER), "jei.bloodmagic.desc.altarBuilder"); + registry.addDescription(new ItemStack(ModItems.MONSTER_SOUL), "jei.bloodmagic.desc.demonicWill"); jeiHelper.getItemBlacklist().addItemToBlacklist(new ItemStack(ModBlocks.BLOOD_LIGHT)); jeiHelper.getItemBlacklist().addItemToBlacklist(new ItemStack(ModBlocks.SPECTRAL_BLOCK)); @@ -78,8 +78,6 @@ public class BloodMagicPlugin extends BlankModPlugin } } - jeiHelper.getSubtypeRegistry().useNbtForSubtypes(Item.getItemFromBlock(ModBlocks.BLOOD_TANK)); - registry.addRecipeClickArea(GuiSoulForge.class, 115, 15, 16, 88, Constants.Compat.JEI_CATEGORY_SOULFORGE); registry.addRecipeCategoryCraftingItem(new ItemStack(ModBlocks.ALTAR), Constants.Compat.JEI_CATEGORY_ALTAR); @@ -88,15 +86,10 @@ public class BloodMagicPlugin extends BlankModPlugin registry.addRecipeCategoryCraftingItem(new ItemStack(ModItems.ARCANE_ASHES), Constants.Compat.JEI_CATEGORY_BINDING); registry.addRecipeCategoryCraftingItem(new ItemStack(ModBlocks.ALCHEMY_TABLE), Constants.Compat.JEI_CATEGORY_ALCHEMYTABLE); registry.addRecipeCategoryCraftingItem(new ItemStack(ModBlocks.RITUAL_CONTROLLER), Constants.Compat.JEI_CATEGORY_ARMOURDOWNGRADE); + } - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.OWNER_UUID); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.OWNER_NAME); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.USES); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.SOULS); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.X_COORD); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.Y_COORD); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.Z_COORD); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.DIMENSION_ID); - jeiHelper.getNbtIgnoreList().ignoreNbtTagNames(Constants.NBT.ITEM_INVENTORY); + @Override + public void registerItemSubtypes(ISubtypeRegistry subtypeRegistry) { + subtypeRegistry.useNbtForSubtypes(Item.getItemFromBlock(ModBlocks.BLOOD_TANK)); } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/CompatibilityJustEnoughItems.java b/src/main/java/WayofTime/bloodmagic/compat/jei/CompatibilityJustEnoughItems.java deleted file mode 100644 index dc95a10d..00000000 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/CompatibilityJustEnoughItems.java +++ /dev/null @@ -1,24 +0,0 @@ -package WayofTime.bloodmagic.compat.jei; - -import WayofTime.bloodmagic.compat.ICompatibility; - -public class CompatibilityJustEnoughItems implements ICompatibility -{ - @Override - public void loadCompatibility(InitializationPhase phase) - { - - } - - @Override - public String getModId() - { - return "JEI"; - } - - @Override - public boolean enableCompat() - { - return true; - } -} diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingCategory.java b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingCategory.java index d2afe677..9635c043 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingCategory.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingCategory.java @@ -24,7 +24,7 @@ public class AlchemyArrayCraftingCategory implements IRecipeCategory @Nonnull private final IDrawable background = BloodMagicPlugin.jeiHelper.getGuiHelper().createDrawable(new ResourceLocation(Constants.Mod.DOMAIN + "gui/jei/binding.png"), 0, 0, 100, 30); @Nonnull - private final String localizedName = TextHelper.localize("jei.BloodMagic.recipe.alchemyArrayCrafting"); + private final String localizedName = TextHelper.localize("jei.bloodmagic.recipe.alchemyArrayCrafting"); @Nonnull @Override @@ -69,10 +69,9 @@ public class AlchemyArrayCraftingCategory implements IRecipeCategory if (recipeWrapper instanceof AlchemyArrayCraftingRecipeJEI) { - AlchemyArrayCraftingRecipeJEI alchemyArrayWrapper = (AlchemyArrayCraftingRecipeJEI) recipeWrapper; recipeLayout.getItemStacks().set(INPUT_SLOT, ingredients.getInputs(ItemStack.class).get(0)); - recipeLayout.getItemStacks().set(CATALYST_SLOT, alchemyArrayWrapper.getCatalyst()); - recipeLayout.getItemStacks().set(OUTPUT_SLOT, ingredients.getOutputs(ItemStack.class).get(0).get(0)); + recipeLayout.getItemStacks().set(CATALYST_SLOT, ingredients.getInputs(ItemStack.class).get(ingredients.getInputs(ItemStack.class).size() - 1)); + recipeLayout.getItemStacks().set(OUTPUT_SLOT, ingredients.getOutputs(ItemStack.class).get(0)); } } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeHandler.java index 42d996db..61eb4548 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeHandler.java @@ -31,6 +31,6 @@ public class AlchemyArrayCraftingRecipeHandler implements IRecipeHandler 0 && recipe.getOutputs().size() > 0; + return true; } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeJEI.java b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeJEI.java index 6efbc435..1dbb5f98 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeJEI.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyArray/AlchemyArrayCraftingRecipeJEI.java @@ -1,11 +1,11 @@ package WayofTime.bloodmagic.compat.jei.alchemyArray; -import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import com.google.common.collect.Lists; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; import net.minecraft.item.ItemStack; @@ -14,10 +14,8 @@ public class AlchemyArrayCraftingRecipeJEI extends BlankRecipeWrapper { @Nonnull private final List inputs; - @Nullable private final ItemStack catalyst; - @Nonnull private final ItemStack output; @@ -35,7 +33,7 @@ public class AlchemyArrayCraftingRecipeJEI extends BlankRecipeWrapper @Override public void getIngredients(IIngredients ingredients) { - ingredients.setOutputs(ItemStack.class, Collections.singletonList(output)); - ingredients.setInputs(ItemStack.class, inputs); + ingredients.setInputLists(ItemStack.class, Lists.newArrayList(inputs, Lists.newArrayList(catalyst))); + ingredients.setOutput(ItemStack.class, output); } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeCategory.java b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeCategory.java index 34b16e28..a83e7896 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeCategory.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeCategory.java @@ -26,7 +26,7 @@ public class AlchemyTableRecipeCategory implements IRecipeCategory @Nonnull private final IDrawable background = BloodMagicPlugin.jeiHelper.getGuiHelper().createDrawable(new ResourceLocation(Constants.Mod.DOMAIN + "gui/jei/alchemyTable.png"), 0, 0, 118, 40); @Nonnull - private final String localizedName = TextHelper.localize("jei.BloodMagic.recipe.alchemyTable"); + private final String localizedName = TextHelper.localize("jei.bloodmagic.recipe.alchemyTable"); @Nonnull private final ICraftingGridHelper craftingGridHelper; diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeHandler.java index f271d1c4..983a457e 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeHandler.java @@ -31,6 +31,6 @@ public class AlchemyTableRecipeHandler implements IRecipeHandler 0 && recipe.getOutputs().size() > 0; + return true; } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeJEI.java b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeJEI.java index 3314ee2d..9c258297 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeJEI.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/alchemyTable/AlchemyTableRecipeJEI.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.compat.jei.alchemyTable; import java.util.ArrayList; import java.util.List; +import WayofTime.bloodmagic.compat.jei.BloodMagicPlugin; import lombok.Getter; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; @@ -22,7 +23,8 @@ public class AlchemyTableRecipeJEI extends BlankRecipeWrapper @Override public void getIngredients(IIngredients ingredients) { -// ingredients.setInputLists(ItemStack.class, Lists.newArrayList(recipe.getInput(), OrbRegistry.getOrbsDownToTier(recipe.getTierRequired()))); + List> expanded = BloodMagicPlugin.jeiHelper.getStackHelper().expandRecipeItemStackInputs(recipe.getInput()); + ingredients.setInputLists(ItemStack.class, expanded); ingredients.setOutput(ItemStack.class, recipe.getRecipeOutput(new ArrayList())); } @@ -32,8 +34,8 @@ public class AlchemyTableRecipeJEI extends BlankRecipeWrapper ArrayList ret = new ArrayList(); if (mouseX >= 58 && mouseX <= 78 && mouseY >= 21 && mouseY <= 34) { - ret.add(TextHelper.localize("jei.BloodMagic.recipe.lpDrained", recipe.getLpDrained())); - ret.add(TextHelper.localize("jei.BloodMagic.recipe.ticksRequired", recipe.getTicksRequired())); + ret.add(TextHelper.localize("jei.bloodmagic.recipe.lpDrained", recipe.getLpDrained())); + ret.add(TextHelper.localize("jei.bloodmagic.recipe.ticksRequired", recipe.getTicksRequired())); } return ret; } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeCategory.java b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeCategory.java index b27cb37e..ba872ee0 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeCategory.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeCategory.java @@ -25,7 +25,7 @@ public class AltarRecipeCategory implements IRecipeCategory @Nonnull private final IDrawable background = BloodMagicPlugin.jeiHelper.getGuiHelper().createDrawable(new ResourceLocation(Constants.Mod.DOMAIN + "gui/jei/altar.png"), 3, 4, 155, 65); @Nonnull - private final String localizedName = TextHelper.localize("jei.BloodMagic.recipe.altar"); + private final String localizedName = TextHelper.localize("jei.bloodmagic.recipe.altar"); @Nonnull @Override @@ -68,9 +68,7 @@ public class AltarRecipeCategory implements IRecipeCategory if (recipeWrapper instanceof AltarRecipeJEI) { - AltarRecipeJEI altarRecipeWrapper = (AltarRecipeJEI) recipeWrapper; - List> inputs = ingredients.getInputs(ItemStack.class); - recipeLayout.getItemStacks().set(INPUT_SLOT, inputs.get(0)); + recipeLayout.getItemStacks().set(INPUT_SLOT, ingredients.getInputs(ItemStack.class).get(0)); recipeLayout.getItemStacks().set(OUTPUT_SLOT, ingredients.getOutputs(ItemStack.class).get(0)); } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeHandler.java index 7fc390e2..bb421437 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeHandler.java @@ -31,6 +31,6 @@ public class AltarRecipeHandler implements IRecipeHandler @Override public boolean isRecipeValid(@Nonnull AltarRecipeJEI recipe) { - return recipe.getInputs().size() > 0 && recipe.getOutputs().size() > 0; + return true; } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeJEI.java b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeJEI.java index a9e1cf18..22558ba6 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeJEI.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/altar/AltarRecipeJEI.java @@ -17,7 +17,6 @@ public class AltarRecipeJEI extends BlankRecipeWrapper { @Nonnull private final List input; - @Nonnull private final ItemStack output; @@ -30,7 +29,7 @@ public class AltarRecipeJEI extends BlankRecipeWrapper this.input = input; this.output = output; - this.infoString = new String[] { TextHelper.localize("jei.BloodMagic.recipe.requiredTier", NumeralHelper.toRoman(tier)), TextHelper.localize("jei.BloodMagic.recipe.requiredLP", requiredLP) }; + this.infoString = new String[] { TextHelper.localize("jei.bloodmagic.recipe.requiredTier", NumeralHelper.toRoman(tier)), TextHelper.localize("jei.bloodmagic.recipe.requiredLP", requiredLP) }; this.consumptionRate = consumptionRate; this.drainRate = drainRate; } @@ -47,8 +46,8 @@ public class AltarRecipeJEI extends BlankRecipeWrapper ArrayList ret = new ArrayList(); if (mouseX >= 13 && mouseX <= 64 && mouseY >= 27 && mouseY <= 58) { - ret.add(TextHelper.localize("jei.BloodMagic.recipe.consumptionRate", consumptionRate)); - ret.add(TextHelper.localize("jei.BloodMagic.recipe.drainRate", drainRate)); + ret.add(TextHelper.localize("jei.bloodmagic.recipe.consumptionRate", consumptionRate)); + ret.add(TextHelper.localize("jei.bloodmagic.recipe.drainRate", drainRate)); } return ret; } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeCategory.java b/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeCategory.java index 5ca3e731..43452de7 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeCategory.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeCategory.java @@ -26,7 +26,7 @@ public class ArmourDowngradeRecipeCategory implements IRecipeCategory @Nonnull private final IDrawable background = BloodMagicPlugin.jeiHelper.getGuiHelper().createDrawable(new ResourceLocation(Constants.Mod.DOMAIN + "gui/jei/alchemyTable.png"), 0, 0, 118, 40); @Nonnull - private final String localizedName = TextHelper.localize("jei.BloodMagic.recipe.armourDowngrade"); + private final String localizedName = TextHelper.localize("jei.bloodmagic.recipe.armourDowngrade"); @Nonnull private final ICraftingGridHelper craftingGridHelper; @@ -88,8 +88,9 @@ public class ArmourDowngradeRecipeCategory implements IRecipeCategory if (recipeWrapper instanceof ArmourDowngradeRecipeJEI) { - guiItemStacks.set(KEY_SLOT, ingredients.getInputs(ItemStack.class).get(1)); - craftingGridHelper.setOutput(guiItemStacks, ingredients.getOutputs(ItemStack.class).get(0)); + guiItemStacks.set(KEY_SLOT, ingredients.getInputs(ItemStack.class).get(ingredients.getInputs(ItemStack.class).size() - 1)); + ingredients.getInputs(ItemStack.class).remove(ingredients.getInputs(ItemStack.class).size() - 1); + guiItemStacks.set(OUTPUT_SLOT, ingredients.getOutputs(ItemStack.class).get(0)); craftingGridHelper.setInputs(guiItemStacks, ingredients.getInputs(ItemStack.class), 3, 2); } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeJEI.java b/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeJEI.java index 8ab68515..e412380a 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeJEI.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/armourDowngrade/ArmourDowngradeRecipeJEI.java @@ -1,5 +1,7 @@ package WayofTime.bloodmagic.compat.jei.armourDowngrade; +import WayofTime.bloodmagic.compat.jei.BloodMagicPlugin; +import com.google.common.collect.Lists; import lombok.Getter; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; @@ -8,6 +10,8 @@ import WayofTime.bloodmagic.api.recipe.LivingArmourDowngradeRecipe; import WayofTime.bloodmagic.api.util.helper.ItemHelper.LivingUpgrades; import WayofTime.bloodmagic.registry.ModItems; +import java.util.List; + public class ArmourDowngradeRecipeJEI extends BlankRecipeWrapper { @Getter @@ -20,7 +24,9 @@ public class ArmourDowngradeRecipeJEI extends BlankRecipeWrapper @Override public void getIngredients(IIngredients ingredients) { - // TODO - inputs + List> expanded = BloodMagicPlugin.jeiHelper.getStackHelper().expandRecipeItemStackInputs(recipe.getInput()); + expanded.add(Lists.newArrayList(recipe.getKey())); + ingredients.setInputLists(ItemStack.class, expanded); ItemStack upgradeStack = new ItemStack(ModItems.UPGRADE_TOME); LivingUpgrades.setUpgrade(upgradeStack, recipe.getRecipeOutput()); ingredients.setOutput(ItemStack.class, upgradeStack); diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeCategory.java b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeCategory.java index cc341cd1..09a57cf3 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeCategory.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeCategory.java @@ -1,9 +1,11 @@ package WayofTime.bloodmagic.compat.jei.binding; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import mezz.jei.api.gui.IDrawable; import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.IRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.client.Minecraft; @@ -22,7 +24,7 @@ public class BindingRecipeCategory implements IRecipeCategory @Nonnull private final IDrawable background = BloodMagicPlugin.jeiHelper.getGuiHelper().createDrawable(new ResourceLocation(Constants.Mod.DOMAIN + "gui/jei/binding.png"), 0, 0, 100, 30); @Nonnull - private final String localizedName = TextHelper.localize("jei.BloodMagic.recipe.binding"); + private final String localizedName = TextHelper.localize("jei.bloodmagic.recipe.binding"); @Nonnull @Override @@ -51,26 +53,23 @@ public class BindingRecipeCategory implements IRecipeCategory } + @Nullable @Override - public void drawAnimations(Minecraft minecraft) - { - + public IDrawable getIcon() { + return null; } @Override - @SuppressWarnings("unchecked") - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) - { + public void setRecipe(IRecipeLayout recipeLayout, IRecipeWrapper recipeWrapper, IIngredients ingredients) { recipeLayout.getItemStacks().init(INPUT_SLOT, true, 0, 5); recipeLayout.getItemStacks().init(CATALYST_SLOT, true, 29, 3); recipeLayout.getItemStacks().init(OUTPUT_SLOT, false, 73, 5); if (recipeWrapper instanceof BindingRecipeJEI) { - BindingRecipeJEI bindingRecipe = (BindingRecipeJEI) recipeWrapper; - recipeLayout.getItemStacks().set(INPUT_SLOT, bindingRecipe.getInputs()); - recipeLayout.getItemStacks().set(CATALYST_SLOT, bindingRecipe.getCatalyst()); - recipeLayout.getItemStacks().set(OUTPUT_SLOT, bindingRecipe.getOutputs()); + recipeLayout.getItemStacks().set(INPUT_SLOT, ingredients.getInputs(ItemStack.class).get(0)); + recipeLayout.getItemStacks().set(CATALYST_SLOT, ingredients.getInputs(ItemStack.class).get(1)); + recipeLayout.getItemStacks().set(OUTPUT_SLOT, ingredients.getOutputs(ItemStack.class).get(0)); } } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeHandler.java index 34981bf9..c8703a1e 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeHandler.java @@ -15,14 +15,6 @@ public class BindingRecipeHandler implements IRecipeHandler return BindingRecipeJEI.class; } - @Deprecated - @Nonnull - @Override - public String getRecipeCategoryUid() - { - return Constants.Compat.JEI_CATEGORY_BINDING; - } - @Override public String getRecipeCategoryUid(@Nonnull BindingRecipeJEI recipe) { @@ -39,6 +31,6 @@ public class BindingRecipeHandler implements IRecipeHandler @Override public boolean isRecipeValid(@Nonnull BindingRecipeJEI recipe) { - return recipe.getInputs().size() > 0 && recipe.getOutputs().size() > 0; + return true; } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeJEI.java b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeJEI.java index 7081c921..b73dce1b 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeJEI.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/binding/BindingRecipeJEI.java @@ -1,10 +1,11 @@ package WayofTime.bloodmagic.compat.jei.binding; -import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; +import com.google.common.collect.Lists; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; import net.minecraft.item.ItemStack; @@ -28,21 +29,9 @@ public class BindingRecipeJEI extends BlankRecipeWrapper } @Override - @Nonnull - public List getInputs() - { - return inputs; - } + public void getIngredients(IIngredients ingredients) { - public ItemStack getCatalyst() - { - return catalyst; - } - - @Override - @Nonnull - public List getOutputs() - { - return Collections.singletonList(output); + ingredients.setInputLists(ItemStack.class, Lists.newArrayList(inputs, Lists.newArrayList(catalyst))); + ingredients.setOutput(ItemStack.class, output); } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java b/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java index 999d6e8f..d3cde49f 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeCategory.java @@ -1,14 +1,15 @@ package WayofTime.bloodmagic.compat.jei.forge; -import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import mezz.jei.api.gui.ICraftingGridHelper; 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.IRecipeCategory; import mezz.jei.api.recipe.IRecipeWrapper; import net.minecraft.client.Minecraft; @@ -27,7 +28,7 @@ public class TartaricForgeRecipeCategory implements IRecipeCategory @Nonnull private final IDrawable background = BloodMagicPlugin.jeiHelper.getGuiHelper().createDrawable(new ResourceLocation(Constants.Mod.DOMAIN + "gui/jei/soulForge.png"), 0, 0, 100, 40); @Nonnull - private final String localizedName = TextHelper.localize("jei.BloodMagic.recipe.soulForge"); + private final String localizedName = TextHelper.localize("jei.bloodmagic.recipe.soulForge"); @Nonnull private final ICraftingGridHelper craftingGridHelper; @@ -63,15 +64,15 @@ public class TartaricForgeRecipeCategory implements IRecipeCategory } + @Nullable @Override - public void drawAnimations(Minecraft minecraft) + public IDrawable getIcon() { - + return null; } @Override - @SuppressWarnings("unchecked") - public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull IRecipeWrapper recipeWrapper) + public void setRecipe(IRecipeLayout recipeLayout, IRecipeWrapper recipeWrapper, IIngredients ingredients) { IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks(); @@ -87,12 +88,17 @@ public class TartaricForgeRecipeCategory implements IRecipeCategory } } + List> inputs = ingredients.getInputs(ItemStack.class); + List> outputs = ingredients.getOutputs(ItemStack.class); + if (recipeWrapper instanceof TartaricForgeRecipeJEI) { TartaricForgeRecipeJEI recipe = (TartaricForgeRecipeJEI) recipeWrapper; - guiItemStacks.set(GEM_SLOT, (ArrayList) recipe.getInputs().get(1)); - craftingGridHelper.setOutput(guiItemStacks, recipe.getOutputs()); - craftingGridHelper.setInput(guiItemStacks, (List) recipe.getInputs().get(0), 2, 3); + guiItemStacks.set(GEM_SLOT, ingredients.getInputs(ItemStack.class).get(ingredients.getInputs(ItemStack.class).size() - 1)); + inputs.remove(ingredients.getInputs(ItemStack.class).size() - 1); + guiItemStacks.set(OUTPUT_SLOT, ingredients.getOutputs(ItemStack.class).get(0)); + guiItemStacks.set(INPUT_SLOT, ingredients.getInputs(ItemStack.class).get(0)); + craftingGridHelper.setInputs(guiItemStacks, inputs); } } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeHandler.java index e5c0ac05..d435eee9 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeHandler.java @@ -15,14 +15,6 @@ public class TartaricForgeRecipeHandler implements IRecipeHandler 0 && recipe.getOutputs().size() > 0; + return true; } } diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeJEI.java b/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeJEI.java index e51511bd..82133b75 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeJEI.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/forge/TartaricForgeRecipeJEI.java @@ -8,7 +8,10 @@ import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import WayofTime.bloodmagic.compat.jei.BloodMagicPlugin; +import com.google.common.collect.Lists; import lombok.Getter; +import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.BlankRecipeWrapper; import net.minecraft.item.ItemStack; import WayofTime.bloodmagic.api.recipe.TartaricForgeRecipe; @@ -20,7 +23,7 @@ public class TartaricForgeRecipeJEI extends BlankRecipeWrapper @Getter private TartaricForgeRecipe recipe; @Getter - private ArrayList validGems = new ArrayList(); + private List validGems = new ArrayList(); public TartaricForgeRecipeJEI(TartaricForgeRecipe recipe) { @@ -32,20 +35,11 @@ public class TartaricForgeRecipeJEI extends BlankRecipeWrapper } @Override - @Nonnull - public List getInputs() - { - ArrayList ret = new ArrayList(); - ret.add(recipe.getInput()); - ret.add(validGems); - return ret; - } - - @Override - @Nonnull - public List getOutputs() - { - return Collections.singletonList(recipe.getRecipeOutput()); + public void getIngredients(IIngredients ingredients) { + List> expandedInputs = BloodMagicPlugin.jeiHelper.getStackHelper().expandRecipeItemStackInputs(recipe.getInput()); + expandedInputs.add(validGems); + ingredients.setInputLists(ItemStack.class, expandedInputs); + ingredients.setOutput(ItemStack.class, recipe.getRecipeOutput()); } @Nullable @@ -55,8 +49,8 @@ public class TartaricForgeRecipeJEI extends BlankRecipeWrapper ArrayList ret = new ArrayList(); if (mouseX >= 40 && mouseX <= 60 && mouseY >= 21 && mouseY <= 34) { - ret.add(TextHelper.localize("jei.BloodMagic.recipe.minimumSouls", recipe.getMinimumSouls())); - ret.add(TextHelper.localize("jei.BloodMagic.recipe.soulsDrained", recipe.getSoulsDrained())); + ret.add(TextHelper.localize("jei.bloodmagic.recipe.minimumSouls", recipe.getMinimumSouls())); + ret.add(TextHelper.localize("jei.bloodmagic.recipe.soulsDrained", recipe.getSoulsDrained())); return ret; } return null; diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapedOrbRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapedOrbRecipeHandler.java index 4e746059..e869ea63 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapedOrbRecipeHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapedOrbRecipeHandler.java @@ -19,14 +19,6 @@ public class ShapedOrbRecipeHandler implements IRecipeHandler> expanded = BloodMagicPlugin.jeiHelper.getStackHelper().expandRecipeItemStackInputs(inputs); + ingredients.setInputLists(ItemStack.class, expanded); + ingredients.setOutput(ItemStack.class, output); } @Override - public List getOutputs() - { - return Collections.singletonList(output); - } - - @Override - public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) - { - String draw = TextHelper.localize("jei.BloodMagic.recipe.requiredTier", NumeralHelper.toRoman(tier)); + public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) { + String draw = TextHelper.localize("jei.bloodmagic.recipe.requiredTier", NumeralHelper.toRoman(tier)); minecraft.fontRendererObj.drawString(draw, 72 - minecraft.fontRendererObj.getStringWidth(draw) / 2, 10, Color.gray.getRGB()); } - - @Override - public List getFluidInputs() - { - return null; - } - - @Override - public List getFluidOutputs() - { - return null; - } - - @Override - public void drawAnimations(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight) - { - - } - - @Nullable - @Override - public List getTooltipStrings(int mouseX, int mouseY) - { - return null; - } - - @Override - public boolean handleClick(@Nonnull Minecraft minecraft, int mouseX, int mouseY, int mouseButton) - { - return false; - } -} +} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapelessOrbRecipeHandler.java b/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapelessOrbRecipeHandler.java index 5bca16e6..1e59b30d 100644 --- a/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapelessOrbRecipeHandler.java +++ b/src/main/java/WayofTime/bloodmagic/compat/jei/orb/ShapelessOrbRecipeHandler.java @@ -17,14 +17,6 @@ public class ShapelessOrbRecipeHandler implements IRecipeHandler getOutputs() - { - return Collections.singletonList(output); + public void getIngredients(IIngredients ingredients) { + List> expanded = BloodMagicPlugin.jeiHelper.getStackHelper().expandRecipeItemStackInputs(inputs); + ingredients.setInputLists(ItemStack.class, expanded); + ingredients.setOutput(ItemStack.class, output); } @Override public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) { - String draw = TextHelper.localize("jei.BloodMagic.recipe.requiredTier", NumeralHelper.toRoman(tier)); + String draw = TextHelper.localize("jei.bloodmagic.recipe.requiredTier", NumeralHelper.toRoman(tier)); minecraft.fontRendererObj.drawString(draw, 72 - minecraft.fontRendererObj.getStringWidth(draw) / 2, 10, Color.gray.getRGB()); } - - @Override - public List getFluidInputs() - { - return null; - } - - @Override - public List getFluidOutputs() - { - return null; - } - - @Override - public void drawAnimations(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight) - { - - } - - @Nullable - @Override - public List getTooltipStrings(int mouseX, int mouseY) - { - return null; - } - - @Override - public boolean handleClick(@Nonnull Minecraft minecraft, int mouseX, int mouseY, int mouseButton) - { - return false; - } }