diff --git a/bin/com/kitsu/medievalcraft/Main.class b/bin/com/kitsu/medievalcraft/Main.class index 7677b614..ac9f538d 100644 Binary files a/bin/com/kitsu/medievalcraft/Main.class and b/bin/com/kitsu/medievalcraft/Main.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class b/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class index 98f22e87..5bb4cd75 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class and b/bin/com/kitsu/medievalcraft/crafting/FormTableCraftManager.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$1.class b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$1.class index a3b0fde9..3a277030 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$1.class and b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$1.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$2.class b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$2.class index 524de8ef..180c9f37 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$2.class and b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$2.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$3.class b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$3.class index e7139430..d71379cd 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$3.class and b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$3.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$4.class b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$4.class index da95718e..ed90634a 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/ModCrafting$4.class and b/bin/com/kitsu/medievalcraft/crafting/ModCrafting$4.class differ diff --git a/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class b/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class index 20ef0350..950562ad 100644 Binary files a/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class and b/bin/com/kitsu/medievalcraft/crafting/ModCrafting.class differ diff --git a/bin/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.class b/bin/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.class index 4b157766..a0ee7f6e 100644 Binary files a/bin/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.class and b/bin/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.class differ diff --git a/bin/com/kitsu/medievalcraft/tileents/machine/TileForge.class b/bin/com/kitsu/medievalcraft/tileents/machine/TileForge.class index 9af1a83b..ad8e2021 100644 Binary files a/bin/com/kitsu/medievalcraft/tileents/machine/TileForge.class and b/bin/com/kitsu/medievalcraft/tileents/machine/TileForge.class differ diff --git a/bin/mcmod.info b/bin/mcmod.info index d2a5c657..dc8c8d60 100644 --- a/bin/mcmod.info +++ b/bin/mcmod.info @@ -3,7 +3,7 @@ "modid": "kitsumedievalcraft", "name": "ForgeCraft", "description": "ForgeCraft", - "version": "{2.2.8}", + "version": "{2.3.0}", "mcversion": "{1.7.10}", "url": "http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2296334-wip-kitsus-forgecraft-blacksmith-style-forging", "updateUrl": "https://bitbucket.org/kitsushadow/kitsus-forgecraft/downloads", diff --git a/src/main/java/com/kitsu/medievalcraft/Main.java b/src/main/java/com/kitsu/medievalcraft/Main.java index 06a01f38..7723b8e7 100644 --- a/src/main/java/com/kitsu/medievalcraft/Main.java +++ b/src/main/java/com/kitsu/medievalcraft/Main.java @@ -55,7 +55,7 @@ public class Main { public static final String MODID = "kitsumedievalcraft"; public static final String MODNAME = "ForgeCraft"; - public static final String VERSION = "2.2.8"; + public static final String VERSION = "2.3.0"; public static SimpleNetworkWrapper sNet; diff --git a/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java b/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java index 3a2dee8b..4aefcbf9 100644 --- a/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java +++ b/src/main/java/com/kitsu/medievalcraft/crafting/FormTableCraftManager.java @@ -13,13 +13,22 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.ShapelessRecipes; import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.ShapedOreRecipe; import com.kitsu.medievalcraft.item.ModItems; -public class FormTableCraftManager { +import cpw.mods.fml.common.registry.GameRegistry; + +public class FormTableCraftManager implements IRecipe{ private static final FormTableCraftManager instance = new FormTableCraftManager(); private List recipes = new ArrayList(); + private ItemStack output = null; + private Object[] input = null; + private int width = 0; + private int height = 0; + private boolean mirrored = true; //private static final String __OBFID = "CL_00000090"; public static final FormTableCraftManager getInstance() { @@ -51,8 +60,108 @@ public class FormTableCraftManager { Collections.sort(this.recipes, new FormTableRecipeSorter(this)); } + +/* public ShapedOreRecipe(Block result, Object... recipe){ this(new ItemStack(result), recipe); } + public ShapedOreRecipe(Item result, Object... recipe){ this(new ItemStack(result), recipe); } + public ShapedOreRecipe(ItemStack result, Object... recipe) + { + output = result.copy(); - public FormTableShapedRecipes addRecipe(ItemStack p_92103_1_, Object ... p_92103_2_) + String shape = ""; + int idx = 0; + + if (recipe[idx] instanceof Boolean) + { + mirrored = (Boolean)recipe[idx]; + if (recipe[idx+1] instanceof Object[]) + { + recipe = (Object[])recipe[idx+1]; + } + else + { + idx = 1; + } + } + + if (recipe[idx] instanceof String[]) + { + String[] parts = ((String[])recipe[idx++]); + + for (String s : parts) + { + width = s.length(); + shape += s; + } + + height = parts.length; + } + else + { + while (recipe[idx] instanceof String) + { + String s = (String)recipe[idx++]; + shape += s; + width = s.length(); + height++; + } + } + + if (width * height != shape.length()) + { + String ret = "Invalid shaped ore recipe: "; + for (Object tmp : recipe) + { + ret += tmp + ", "; + } + ret += output; + throw new RuntimeException(ret); + } + + HashMap itemMap = new HashMap(); + + for (; idx < recipe.length; idx += 2) + { + Character chr = (Character)recipe[idx]; + Object in = recipe[idx + 1]; + + if (in instanceof ItemStack) + { + itemMap.put(chr, ((ItemStack)in).copy()); + } + else if (in instanceof Item) + { + itemMap.put(chr, new ItemStack((Item)in)); + } + else if (in instanceof Block) + { + itemMap.put(chr, new ItemStack((Block)in, 1, OreDictionary.WILDCARD_VALUE)); + } + else if (in instanceof String) + { + itemMap.put(chr, OreDictionary.getOres((String)in)); + } + else + { + String ret = "Invalid shaped ore recipe: "; + for (Object tmp : recipe) + { + ret += tmp + ", "; + } + ret += output; + throw new RuntimeException(ret); + } + } + + input = new Object[width * height]; + int x = 0; + for (char chr : shape.toCharArray()) + { + input[x++] = itemMap.get(chr); + } + } + + */ + public FormTableShapedRecipes addRecipe(ItemStack p_92103_1_, Object ... p_92103_2_) { String s = ""; int i = 0; @@ -155,6 +264,7 @@ public class FormTableCraftManager { arraylist.add(new ItemStack((Block)object1)); } } + this.recipes.add(new ShapelessRecipes(p_77596_1_, arraylist)); } @@ -222,4 +332,28 @@ public class FormTableCraftManager { { return this.recipes; } + + @Override + public boolean matches(InventoryCrafting p_77569_1_, World p_77569_2_) { + // TODO Auto-generated method stub + return false; + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting p_77572_1_) { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRecipeSize() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public ItemStack getRecipeOutput() { + // TODO Auto-generated method stub + return null; + } } \ No newline at end of file diff --git a/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java b/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java index b2bbc6c0..8c527a08 100644 --- a/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java +++ b/src/main/java/com/kitsu/medievalcraft/crafting/ModCrafting.java @@ -10,6 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; import com.kitsu.medievalcraft.block.ModBlocks; import com.kitsu.medievalcraft.item.ModItems; @@ -193,14 +194,14 @@ public final class ModCrafting { GameRegistry.addRecipe(new ItemStack(ModBlocks.firebox), new Object[] {"x x", "x x", "xxx", 'x', Items.netherbrick}); - GameRegistry.addRecipe(new ItemStack(ModBlocks.firebox), new Object[] + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.firebox), new Object[] {"x x", "x x", "xxx", - Character.valueOf('x'), "ingotBrickClay"}); + ('x'), "ingotBrickClay"})); //-----------------------LEATHER STUFF-----------------------// //GameRegistry.addRecipe(new ItemStack(ModItems.rawCuredLeather), new Object[]{"x", "z", 'x', Items.leather, 'z', ModItems.salt}); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rawCuredLeather), new Object[]{Items.leather, "foodSalt"}); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.rawCuredLeather), new Object[]{Items.leather, "foodSalt"})); GameRegistry.addRecipe(new ItemStack(ModItems.finishedLeather), new Object[]{"x",'x', ModItems.tannedLeather}); //GameRegistry.addRecipe(new ItemStack(ModItems.rawCuredLeather), new Object[]{"x", "z", 'x', Items.leather, 'z', ModItems.salt}); @@ -218,7 +219,7 @@ public final class ModCrafting { //-----------------------CRUCIBLE STUFF-----------------------// //GameRegistry.addRecipe(new ItemStack(ModItems.crucibleLid), new Object[]{"x", "y", 'x', Items.clay_ball, 'y', Blocks.stone_slab}); - GameRegistry.addRecipe(new ItemStack(ModBlocks.emptySoftCrucible), new Object[]{"y y", "y y", "yyy", 'y', Items.clay_ball}); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.emptySoftCrucible), new Object[]{"y y", "y y", "yyy", 'y', "clumpClay"})); GameRegistry.addRecipe(new ItemStack(ModItems.charcoalLeafPellet), new Object[]{"xxx", "xyx", "xxx", 'x', new ItemStack(Blocks.leaves,0,3), 'y', new ItemStack(Items.coal,0,1)}); GameRegistry.addRecipe(new ItemStack(ModBlocks.crucibleIronOre), new Object[]{" x ", "abc", " y ", diff --git a/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java b/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java index f41fa8fe..3f5bce82 100644 --- a/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java +++ b/src/main/java/com/kitsu/medievalcraft/entity/EntityITSpear.java @@ -41,7 +41,7 @@ public class EntityITSpear extends EntityArrow implements IProjectile { public Entity shootingEntity; private int ticksInGround; private int ticksInAir; - private double damage = 10.0D; + private double damage = 35.0D; /** The amount of knockback an arrow applies when it hits a mob. */ private int knockbackStrength; @@ -327,7 +327,10 @@ public class EntityITSpear extends EntityArrow implements IProjectile { if (this.shootingEntity == null) { + //EntityPlayer player = (EntityPlayer) movingobjectposition.entityHit; + //System.out.println(player.inventory.getTotalArmorValue()); damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity); + //damagesource = DamageSource. } else { @@ -372,7 +375,7 @@ public class EntityITSpear extends EntityArrow implements IProjectile { } } - this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + //this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); if (!(movingobjectposition.entityHit instanceof EntityEnderman)) { @@ -405,7 +408,7 @@ public class EntityITSpear extends EntityArrow implements IProjectile { this.posX -= this.motionX / (double)f2 * 0.05000000074505806D; this.posY -= this.motionY / (double)f2 * 0.05000000074505806D; this.posZ -= this.motionZ / (double)f2 * 0.05000000074505806D; - this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); + //this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); this.inGround = true; this.arrowShake = 7; @@ -415,6 +418,7 @@ public class EntityITSpear extends EntityArrow implements IProjectile { this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); } } + this.inGround=true; } this.posX += this.motionX; @@ -562,7 +566,7 @@ public class EntityITSpear extends EntityArrow implements IProjectile { @SideOnly(Side.CLIENT) public float getShadowSize() { - return 1.0F; + return 2.0F; } public void setDamage(double p_70239_1_) diff --git a/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java b/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java index 427f9f91..c55ae606 100644 --- a/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java +++ b/src/main/java/com/kitsu/medievalcraft/item/craftingtools/ForgeHammer.java @@ -102,7 +102,7 @@ public class ForgeHammer extends Item implements AnvilUtil{ world.setBlock(x, y, z, ModBlocks.ironPlate, 0, 2); } } - + if(tileEnt.getStackInSlot(0)!=null){ if((tileEnt.getStackInSlot(0).getItem().equals(Items.flower_pot))||tileEnt.getStackInSlot(0).getItem().equals(Items.bucket)){ p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); Main.sNet.sendToAll(new MsgPacket(true)); @@ -120,6 +120,7 @@ public class ForgeHammer extends Item implements AnvilUtil{ world.spawnEntityInWorld(new EntityItem(world, x+0.5D, y+0.6D, z+0.5D, new ItemStack(Items.bucket, 1))); } } + //IRON FORMS if(tileEnt.getStackInSlot(0)!=null){ @@ -164,11 +165,12 @@ public class ForgeHammer extends Item implements AnvilUtil{ } if((block instanceof IngotBase)){ - TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y, z); + //TileIngotBase tile = (TileIngotBase) world.getTileEntity(x, y, z); //REPAIR TOOLS - Item checkItem = tileEnt.getStackInSlot(0).getItem(); - String displayName = tileEnt.getStackInSlot(0).getDisplayName(); + if(tileEnt.getStackInSlot(0) != null){ + Item checkItem = tileEnt.getStackInSlot(0).getItem(); + String displayName = tileEnt.getStackInSlot(0).getDisplayName(); if(displayName.equals(getTool(tileEnt.getStackInSlot(0)))&&(tile.hot == true)&&(block==ModBlocks.refinedIron)){ if(tileEnt.getStackInSlot(0).isItemDamaged() == true){ p.worldObj.playSoundAtEntity(p, Main.MODID + ":anvilhammer", 1.0F, 1.0F); @@ -207,6 +209,7 @@ public class ForgeHammer extends Item implements AnvilUtil{ } } } + } } /* * ItemStack gladius0 = new ItemStack(ModItems.gladius); diff --git a/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java b/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java index f77b6554..e84c2aca 100644 --- a/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java +++ b/src/main/java/com/kitsu/medievalcraft/tileents/machine/TileForge.java @@ -361,8 +361,10 @@ public class TileForge extends TileEntity implements IInventory{ } } if(world.getBlockMetadata(x, y, z)>3&&world.getBlockMetadata(x, y, z)<8){ - if(this.getStackInSlot(1)!=null && (world.canBlockSeeTheSky(x, y+1, z)==true)){ - world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+4, 3); + if(this.getStackInSlot(1)!=null){ + if(world.canBlockSeeTheSky(x, y+1, z)==true || world.provider.isHellWorld==true){ + world.setBlockMetadataWithNotify(x, y, z, world.getBlockMetadata(x, y, z)+4, 3); + } } } if(world.getBlockMetadata(x, y, z)>7){ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index d2a5c657..dc8c8d60 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "kitsumedievalcraft", "name": "ForgeCraft", "description": "ForgeCraft", - "version": "{2.2.8}", + "version": "{2.3.0}", "mcversion": "{1.7.10}", "url": "http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2296334-wip-kitsus-forgecraft-blacksmith-style-forging", "updateUrl": "https://bitbucket.org/kitsushadow/kitsus-forgecraft/downloads",