diff --git a/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch b/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch index 04c5c256fb..e8540b41f8 100644 --- a/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch +++ b/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch @@ -9,14 +9,17 @@ public class SlotCrafting extends Slot { -@@ -124,8 +126,14 @@ +@@ -122,10 +124,16 @@ + { + this.craftMatrix.decrStackSize(i, 1); - if (itemstack1.getItem().hasContainerItem()) +- if (itemstack1.getItem().hasContainerItem()) ++ if (itemstack1.getItem().hasContainerItem(itemstack1)) { - ItemStack itemstack2 = new ItemStack(itemstack1.getItem().getContainerItem()); + ItemStack itemstack2 = itemstack1.getItem().getContainerItem(itemstack1); -+ if (itemstack2.isItemStackDamageable() && itemstack2.getItemDamage() > itemstack2.getMaxDamage()) ++ if (itemstack2 != null && itemstack2.isItemStackDamageable() && itemstack2.getItemDamage() > itemstack2.getMaxDamage()) + { + MinecraftForge.EVENT_BUS.post(new PlayerDestroyItemEvent(thePlayer, itemstack2)); + continue; diff --git a/patches/minecraft/net/minecraft/item/Item.java.patch b/patches/minecraft/net/minecraft/item/Item.java.patch index 899f7d0bf2..e1552d4624 100644 --- a/patches/minecraft/net/minecraft/item/Item.java.patch +++ b/patches/minecraft/net/minecraft/item/Item.java.patch @@ -51,7 +51,15 @@ public int getItemStackLimit() { return this.maxStackSize; -@@ -660,6 +671,7 @@ +@@ -595,6 +606,7 @@ + } + + // JAVADOC METHOD $$ func_77634_r ++ @Deprecated // Use ItemStack sensitive version below. + public boolean hasContainerItem() + { + return this.containerItem != null; +@@ -660,6 +672,7 @@ } @SideOnly(Side.CLIENT) @@ -59,7 +67,7 @@ public boolean hasEffect(ItemStack par1ItemStack) { return par1ItemStack.isItemEnchanted(); -@@ -674,7 +686,7 @@ +@@ -674,7 +687,7 @@ // JAVADOC METHOD $$ func_77616_k public boolean isItemTool(ItemStack par1ItemStack) { @@ -68,7 +76,7 @@ } protected MovingObjectPosition getMovingObjectPositionFromPlayer(World par1World, EntityPlayer par2EntityPlayer, boolean par3) -@@ -683,7 +695,7 @@ +@@ -683,7 +696,7 @@ float f1 = par2EntityPlayer.prevRotationPitch + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * f; float f2 = par2EntityPlayer.prevRotationYaw + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * f; double d0 = par2EntityPlayer.prevPosX + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * (double)f; @@ -77,7 +85,7 @@ double d2 = par2EntityPlayer.prevPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * (double)f; Vec3 vec3 = par1World.getWorldVec3Pool().getVecFromPool(d0, d1, d2); float f3 = MathHelper.cos(-f2 * 0.017453292F - (float)Math.PI); -@@ -693,6 +705,10 @@ +@@ -693,6 +706,10 @@ float f7 = f4 * f5; float f8 = f3 * f5; double d3 = 5.0D; @@ -88,7 +96,7 @@ Vec3 vec31 = vec3.addVector((double)f7 * d3, (double)f6 * d3, (double)f8 * d3); return par1World.func_147447_a(vec3, vec31, par3, !par3, false); } -@@ -773,6 +789,532 @@ +@@ -773,6 +790,542 @@ return this.iconString == null ? "MISSING_ICON_ITEM_" + field_150901_e.func_148757_b(this) + "_" + this.unlocalizedName : this.iconString; } @@ -234,7 +242,7 @@ + */ + public ItemStack getContainerItem(ItemStack itemStack) + { -+ if (!hasContainerItem()) ++ if (!hasContainerItem(itemStack)) + { + return null; + } @@ -242,6 +250,16 @@ + } + + /** ++ * ItemStack sensitive version of hasContainerItem ++ * @param stack The current item stack ++ * @return True if this item has a 'container' ++ */ ++ public boolean hasContainerItem(ItemStack stack) ++ { ++ return hasContainerItem(); ++ } ++ ++ /** + * Retrieves the normal 'lifespan' of this item when it is dropped on the ground as a EntityItem. + * This is in ticks, standard result is 6000, or 5 mins. + * @@ -621,7 +639,7 @@ public static enum ToolMaterial { WOOD(0, 59, 2.0F, 0.0F, 15), -@@ -793,6 +1335,9 @@ +@@ -793,6 +1346,9 @@ private static final String __OBFID = "CL_00000042"; @@ -631,7 +649,7 @@ private ToolMaterial(int par3, int par4, float par5, float par6, int par7) { this.harvestLevel = par3; -@@ -834,7 +1379,15 @@ +@@ -834,7 +1390,15 @@ public Item func_150995_f() { diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch index 90bab7d4ed..94d56a7365 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch @@ -27,9 +27,12 @@ { int j = this.field_145945_j[i].getItemDamage(); int k = this.func_145936_c(j, itemstack); -@@ -167,7 +169,7 @@ +@@ -165,9 +167,9 @@ + } + } - if (itemstack.getItem().hasContainerItem()) +- if (itemstack.getItem().hasContainerItem()) ++ if (itemstack.getItem().hasContainerItem(itemstack)) { - this.field_145945_j[3] = new ItemStack(itemstack.getItem().getContainerItem()); + this.field_145945_j[3] = itemstack.getItem().getContainerItem(itemstack);