From 65e42b39c2b8d13efbffa9363d09162ff9fc1271 Mon Sep 17 00:00:00 2001 From: Mohammad-Ali Minaie Date: Mon, 17 Sep 2018 04:38:12 -0400 Subject: [PATCH] fixed Anvil JEI --- .../forgecraft/blocks/Anvil/AnvilIron.java | 5 +- .../forgecraft/blocks/Anvil/AnvilStone.java | 16 +- .../primal/forgecraft/compat/JEI/ModJEI.java | 4 +- .../compat/JEI/anvil/AnvilRecipeCategory.java | 15 +- .../compat/JEI/anvil/AnvilRecipeWrapper.java | 28 +- .../forgecraft/crafting/AnvilCrafting.java | 33 +- .../primal/forgecraft/init/ModCrafting.java | 1432 +++++++++-------- .../primal/forgecraft/util/AnvilHandler.java | 3 +- .../assets/forgecraft/lang/en_us.lang | 3 +- .../forgecraft/textures/gui/jei/anvil.png | Bin 0 -> 794 bytes 10 files changed, 779 insertions(+), 760 deletions(-) create mode 100644 kfc/src/main/resources/assets/forgecraft/textures/gui/jei/anvil.png diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilIron.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilIron.java index eecfcfa0..33a2ce67 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilIron.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilIron.java @@ -3,6 +3,7 @@ package nmd.primal.forgecraft.blocks.Anvil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; @@ -34,9 +35,9 @@ public class AnvilIron extends AnvilBase implements AnvilHandler { TileAnvil tile = (TileAnvil) world.getTileEntity(pos); if (tile != null) { if ((pItem.getItem() instanceof Gallagher) || (pItem.getItem() == ModItems.forgehammer)) { - String[] tempArray = new String[25]; + ItemStack[] tempArray = new ItemStack[25]; for (int i = 0; i < 25; i++) { - tempArray[i] = tile.getSlotStack(i).getItem().getRegistryName().toString(); + tempArray[i] = tile.getSlotStack(i); } /*for (int i = 0; i < 25; i++) { if (tile.getSlotStack(i).getItem() instanceof BaseMultiItem) { diff --git a/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilStone.java b/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilStone.java index 5139cc6a..46e8e9f2 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilStone.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/blocks/Anvil/AnvilStone.java @@ -3,6 +3,7 @@ package nmd.primal.forgecraft.blocks.Anvil; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -108,21 +109,10 @@ public class AnvilStone extends AnvilBase { } } if ((pItem.getItem() instanceof Gallagher) || (pItem.getItem() == ModItems.forgehammer)) { - String[] tempArray = new String[25]; + ItemStack[] tempArray = new ItemStack[25]; for (int i = 0; i < 25; i++) { - tempArray[i] = tile.getSlotStack(i).getItem().getRegistryName().toString(); + tempArray[i] = tile.getSlotStack(i); } - /*for (int i = 0; i < 25; i++) { - if (tile.getSlotStack(i).getItem() instanceof BaseMultiItem) { - if (((BaseMultiItem) tile.getSlotStack(i).getItem()).getMaterial(tile.getSlotStack(i).getItem()) != PrimalMaterials.TOOL_WROUGHT_IRON) { - world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2); - CommonUtils.spawnItemEntityFromWorld(world, pos, new ItemStack(PrimalItems.ROCK_STONE, 3)); - CommonUtils.spawnItemEntityFromWorld(world, pos, new ItemStack(ModBlocks.ironball, 1)); - this.breakBlock(world, pos, state); - return true; - } - } - }*/ doAnvilRecipe(pItem, tempArray, world, tile, pos, player); return true; } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/ModJEI.java b/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/ModJEI.java index e9f7591e..841bca7b 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/ModJEI.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/ModJEI.java @@ -72,9 +72,9 @@ public class ModJEI implements IModPlugin // ***************************************************************************** // // Info // ***************************************************************************** // - registry.addIngredientInfo(ItemStack.EMPTY, ItemStack.class, "jei.info.forgecraft.crucible"); + //registry.addIngredientInfo(ItemStack.EMPTY, ItemStack.class, "jei.info.forgecraft.crucible"); registry.addIngredientInfo(new ItemStack(ModBlocks.nbtCrucible, 1, OreDictionary.WILDCARD_VALUE), ItemStack.class, "jei.info.forgecraft.crucible"); - registry.addIngredientInfo(new OreIngredient("oreIron"), OreIngredient.class, "jei.info.forgecraft.oreiron"); + //registry.addIngredientInfo(new OreIngredient("oreIron"), OreIngredient.class, "jei.info.forgecraft.oreiron"); registry.addIngredientInfo(new ItemStack(ModBlocks.stoneanvil, 1, OreDictionary.WILDCARD_VALUE), ItemStack.class, "jei.info.forgecraft.anvil"); } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeCategory.java b/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeCategory.java index f8929e55..c820093c 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeCategory.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeCategory.java @@ -13,6 +13,7 @@ import nmd.primal.core.common.helper.CommonUtils; import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.compat.JEI.AbstractCategory; import nmd.primal.forgecraft.init.ModBlocks; +import nmd.primal.forgecraft.init.ModItems; import javax.annotation.Nonnull; @@ -23,13 +24,13 @@ public class AnvilRecipeCategory extends AbstractCategory { public static String CATEGORY = CommonUtils.prefix("anvil"); - private static ResourceLocation gui_background = new ResourceLocation(ModInfo.MOD_ID,"textures/gui/jei/crucible.png"); + private static ResourceLocation gui_background = new ResourceLocation(ModInfo.MOD_ID,"textures/gui/jei/anvil.png"); private final IDrawable background; public AnvilRecipeCategory(IGuiHelper guiHelper) { //background = guiHelper.createDrawable(gui_background, 0, 0, 134, 144, 0, 0, 0, 0); - background = guiHelper.createDrawable(gui_background, 0,0,160,134); + background = guiHelper.createDrawable(gui_background, 0,0,160,96); } @Nonnull @@ -98,17 +99,17 @@ public class AnvilRecipeCategory extends AbstractCategory //items.set(0, recipe.getIngredient(0)); for(int i =0; i < 25; i++){ - items.set(i, new ItemStack(recipe.getIngredient(i), 1)); + items.set(i, recipe.getIngredient(i)); } /***OUTPUTS***/ - items.init(25, false, 115, 96); + items.init(25, false, 133, 40); items.set(25, recipe.output); /***EXTRAS***/ - //items.init(6, false, 1, 96); - //ItemStack crucibleStack = new ItemStack(ModBlocks.nbtCrucible, 1, 0); - //items.set(6, crucibleStack); + items.init(26, false, 105, 28); + ItemStack hammerStack = new ItemStack(ModItems.forgehammer, 1); + items.set(26, hammerStack); //items.init(7, false, 58, 96); //ItemStack bloomeryStack = new ItemStack(ModBlocks.bloomery_brick, 1, 0); diff --git a/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeWrapper.java b/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeWrapper.java index 63763180..5600e134 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeWrapper.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/compat/JEI/anvil/AnvilRecipeWrapper.java @@ -2,6 +2,7 @@ package nmd.primal.forgecraft.compat.JEI.anvil; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.IRecipeWrapper; +import net.minecraft.client.Minecraft; import net.minecraft.init.Items; import net.minecraft.inventory.ItemStackHelper; import net.minecraft.item.Item; @@ -12,6 +13,8 @@ import nmd.primal.core.api.PrimalAPI; import nmd.primal.forgecraft.crafting.AnvilCrafting; import nmd.primal.forgecraft.init.ModItems; +import javax.annotation.Nonnull; +import java.awt.*; import java.util.Arrays; import java.util.List; @@ -22,7 +25,7 @@ public class AnvilRecipeWrapper implements IRecipeWrapper { protected final AnvilCrafting recipe; - protected String[] input; + protected ItemStack[] input; protected String upgradeType; protected ItemStack output; @@ -39,21 +42,22 @@ public class AnvilRecipeWrapper implements IRecipeWrapper { @Override public void getIngredients(IIngredients ingredients) { - for(int i =0; i < input.length; i++){ - ResourceLocation name = new ResourceLocation(input[i]); - ingredients.setInput(ItemStack.class, ForgeRegistries.ITEMS.getValue(name)); + for(int i =0; i < 25; i++){ + //if(this.input[i] != new ItemStack(Items.AIR, 1) { + ingredients.setInput(ItemStack.class, this.input[i]); + //} } + ingredients.setOutput(ItemStack.class, this.output); } - public Item getIngredient(int a){ + public ItemStack getIngredient(int a){ + return input[a]; + } - Item[] tempArray = new Item[25]; - for(int i =0; i < input.length; i++){ - ResourceLocation name = new ResourceLocation(input[i]); - tempArray[i] = ForgeRegistries.ITEMS.getValue(name); - } - List stackList = Arrays.asList(tempArray); - return stackList.get(a); + @Override + public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) + { + //minecraft.fontRenderer.drawString(recipe.getDropsCooked().getDisplayName() + " Recipe", 20, 5, Color.black.getRGB()); } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/crafting/AnvilCrafting.java b/kfc/src/main/java/nmd/primal/forgecraft/crafting/AnvilCrafting.java index dd3171d5..f8c5ede2 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/crafting/AnvilCrafting.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/crafting/AnvilCrafting.java @@ -1,5 +1,6 @@ package nmd.primal.forgecraft.crafting; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import java.util.ArrayList; @@ -20,13 +21,13 @@ public class AnvilCrafting { private static ArrayList anvilRecipes = new ArrayList<>(); - private String[] input = new String[25]; + private ItemStack[] input = new ItemStack[25]; private String upgradeType; private ItemStack output; - public AnvilCrafting(String[] input, ItemStack output, String upgrade){ + public AnvilCrafting(ItemStack[] input, ItemStack output, String upgrade){ this.input = input; this.output = output; @@ -38,33 +39,47 @@ public class AnvilCrafting { // Recipe Methods // ***************************************************************************** // - public static void addRecipe(String[] input, ItemStack output, String upgrade) + public static void addRecipe(ItemStack[] input, ItemStack output, String upgrade) { anvilRecipes.add(new AnvilCrafting(input, output, upgrade)); } - public static boolean isRecipe(String[] array) + public static boolean isRecipe(ItemStack[] array) { for(AnvilCrafting recipe : anvilRecipes) { if (Arrays.equals(array, recipe.input)) - return true; } return false; } - public static AnvilCrafting getRecipe(String[] array) + public static AnvilCrafting getRecipe(ItemStack[] array) { for(AnvilCrafting recipe : anvilRecipes) { - if (Arrays.equals(array, recipe.input)) + if(checkArrays(recipe.getInput(), array)){ return recipe; + } } return null; } - public String[] getInput() {return this.input;} + public static boolean checkArrays (ItemStack[] leftArray, ItemStack[] rightArray){ + int a =0; + for(int i=0; i|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD*&lHVa`3AhPkqh8z`(TJ)5S5Q;?~JNcc0jhlG;U|40Kdaj)3}q76CNola4;w^ zGypxofSuv6c?}Eq`6de0|X2uvG; c8T>mV%`-uZaqXoE79eMOy85}Sb4q9e0RMo_#Q*>R literal 0 HcmV?d00001