From 9901eceba5eb415c7b4024b87ac67c83ccc71a3f Mon Sep 17 00:00:00 2001 From: Mohammad-Ali Minaie Date: Mon, 6 Mar 2017 22:12:46 -0500 Subject: [PATCH] adding crafting for charred tool handle --- .../nmd/primal/forgecraft/blocks/Anvil.java | 27 ++++----- .../forgecraft/blocks/BlockCustomBase.java | 2 +- .../primal/forgecraft/blocks/IngotBall.java | 20 +++++-- .../forgecraft/crafting/AnvilCrafting.java | 56 ++++--------------- .../nmd/primal/forgecraft/init/ModBlocks.java | 36 +++++++++++- .../primal/forgecraft/init/ModCrafting.java | 28 +++++++++- .../nmd/primal/forgecraft/init/ModItems.java | 1 + 7 files changed, 99 insertions(+), 71 deletions(-) diff --git a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java index e79a35e6..ded11ae4 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/blocks/Anvil.java @@ -75,28 +75,21 @@ public class Anvil extends CustomContainerFacing { ItemStack pItem = player.inventory.getCurrentItem(); // ***************************************************************************** // - // Crafting + // Crafting Anvil Recipes // ***************************************************************************** // if(pItem.getItem() == PrimalItems.STONE_GALLAGHER){ - System.out.println("Use the ghallegher"); - StringBuilder craftingIDBuilder = new StringBuilder(); - //craftingIDBuilder.append(""); - int craftingID = 0; - for(int i=0; i anvilRecipes = new ArrayList<>(); - private static int input; + private Integer[] input = new Integer[25]; private static ItemStack slot0, slot1, slot2, slot3, slot4, slot5, slot6, slot7, slot8, slot9, slot10, slot11, slot12, slot13, slot14, slot15, slot16, slot17, slot18, slot19, slot20, slot21, slot22, slot23, slot24; private static ItemStack [] slots = {slot0, slot1, slot2, slot3, slot4, slot5, slot6, slot7, slot8, slot9, slot10, slot11, slot12, slot13, slot14, slot15, slot16, slot17, slot18, slot19, slot20, slot21, slot22, slot23, slot24}; - private static int[] craftingIDs = {6781014}; - - public static int getCraftingIDs(Integer x) { - return craftingIDs[x]; - } - - public static int[] getCraftingIDArray() { - return craftingIDs; - } - - private static ItemStack[] craftable = {new ItemStack(Blocks.OBSIDIAN, 1)}; - - public static ItemStack getCraftable(Integer x) { - return craftable[x]; - } - - - /*public static Hashtable anvilReference = new Hashtable(){{ - - put(6781014, new ItemStack(Blocks.OBSIDIAN, 1)); - - //put(3, ModItems.battleAxe); - - }};*/ - - public static ItemStack getSlots(Integer x) { - return slots[x]; - } - - public static ItemStack[] getSlots() { - return slots; - } - private ItemStack output; - public AnvilCrafting(Integer input, ItemStack output){ + public AnvilCrafting(Integer[] input, ItemStack output){ this.input = input; this.output = output; @@ -72,29 +40,25 @@ public class AnvilCrafting { // Recipe Methods // ***************************************************************************** // - public static void addRecipe(Integer input, ItemStack output) + public static void addRecipe(Integer[] input, ItemStack output) { anvilRecipes.add(new AnvilCrafting(input, output)); } - public static boolean isRecipeItem(Integer craftingID) + public static boolean isRecipe(Integer[] array) { for(AnvilCrafting recipe : anvilRecipes) { - for(int i=0; i < AnvilCrafting.craftingIDs.length ; i++){ - if (craftingID.equals(getCraftingIDs(i))) - return true; - } + if (Arrays.equals(array, recipe.input)) + return true; } return false; } - public static AnvilCrafting getRecipe(Integer id) + public static AnvilCrafting getRecipe(Integer[] array) { for(AnvilCrafting recipe : anvilRecipes) { - for (int i = 0; i < AnvilCrafting.craftingIDs.length; i++) { - if (id.equals(getCraftingIDs(i))) - return recipe; - } + if (Arrays.equals(array, recipe.input)) + return recipe; } return null; } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java index 7508267b..8478f8ea 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/init/ModBlocks.java @@ -2,14 +2,26 @@ package nmd.primal.forgecraft.init; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import nmd.primal.core.api.PrimalItems; +import nmd.primal.core.common.blocks.PrimalBlock; +import nmd.primal.forgecraft.CommonUtils; import nmd.primal.forgecraft.blocks.*; import nmd.primal.forgecraft.items.blocks.ItemBlockIngotBall; @@ -71,8 +83,28 @@ public class ModBlocks { failedironcrucible = new Crucible(Material.ROCK, "failedironcrucible"); failedironcruciblehot = new CrucibleHot(Material.ROCK, "failedironcruciblehot"); - ironball = new IngotBall(Material.IRON, "ironball", 5.0F); - ironchunk = new IngotBall(Material.IRON, "ironchunk", 5.0F); + ironball = new IngotBall(Material.IRON, "ironball", 5.0F, "ingot") { + @Override + public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitx, float hity, float hitz) + { + if(!world.isRemote){ + Item pItem = player.getHeldItem(hand).getItem(); + BlockPos belowPos = new BlockPos(pos.getX(), pos.getY() - 1, pos.getZ()); + + if(pItem.equals(PrimalItems.STONE_GALLAGHER) && world.getBlockState(belowPos).getBlock().equals(Blocks.STONE)){ + player.swingArm(hand); + world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2); + world.setBlockState(belowPos, ModBlocks.stoneanvil.getDefaultState().withProperty(Anvil.FACING, player.getHorizontalFacing()), 2); + world.playEvent(1031, pos, 0); + //CommonUtils.spawnItemEntityFromWorld(world, pos, new ItemStack(ModBlocks.stoneanvil, 1)); + return true; + } + } + return false; + } + }; + + ironchunk = new IngotBall(Material.IRON, "ironchunk", 5.0F, "chunk"); stoneanvil = new Anvil(Material.ROCK, "stoneanvil", 5.0f); //ironballitemcool = new ItemBlockIngotBall(ironball); diff --git a/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java index 1b75efcb..c57c5fec 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/init/ModCrafting.java @@ -7,6 +7,9 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.registry.GameRegistry; +import nmd.primal.core.api.PrimalItems; +import nmd.primal.core.common.crafting.ToolRecipe; +import nmd.primal.core.common.items.tools.PrimalTool; import nmd.primal.forgecraft.blocks.Bloomery; import nmd.primal.forgecraft.blocks.IngotBall; import nmd.primal.forgecraft.crafting.AnvilCrafting; @@ -19,6 +22,7 @@ import nmd.primal.forgecraft.crafting.ForgeCrafting; public class ModCrafting { public static void register() { + /***Forge***/ GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.firebox), "X X", "XYX", "X X", 'X', Items.BRICK, 'Y', Blocks.FURNACE); @@ -146,11 +150,33 @@ public class ModCrafting { 1.0f ); + //Makes a Charred Tool Handle + ForgeCrafting.addRecipe( + ModBlocks.ironchunk, + ModBlocks.ironchunk.getDefaultState().withProperty(IngotBall.ACTIVE, false), + ModBlocks.ironchunk.getDefaultState().withProperty(IngotBall.ACTIVE, true), + new ItemStack(ModBlocks.ironchunk, 1), + ModBlocks.ironchunk.getDefaultState().withProperty(IngotBall.ACTIVE, false), + 800, + 170, + 400, + 1.0f, + 1.0f + ); + // ***************************************************************************** // // ANVILING // ***************************************************************************** // - AnvilCrafting.addRecipe(6781014, new ItemStack(Blocks.OBSIDIAN, 1)); + //AnvilCrafting.addRecipe(6781014, new ItemStack(Blocks.OBSIDIAN, 1)); + AnvilCrafting.addRecipe( + new Integer[] { 0,0,0,0,0, + 0,1,1,1,0, + 1,0,0,0,1, + 0,0,0,0,0, + 0,0,0,0,0 }, + new ItemStack(Blocks.OBSIDIAN, 1) + ); } } diff --git a/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java b/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java index 569a7a81..8b99b728 100644 --- a/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java +++ b/1.11/src/main/java/nmd/primal/forgecraft/init/ModItems.java @@ -31,6 +31,7 @@ import nmd.primal.forgecraft.items.blocks.ItemBlockIngotBall; public class ModItems { public static Item pistonbellows; + public static Item heavytoolhandle; public static Item softcrucible; public static Item stonetongs; //public static Item ironingotballcool;