Stack sensitive version of Item.getItemStackLimit. Closes #771

This commit is contained in:
Lex Manos 2013-09-30 16:21:40 -07:00
parent d3c80c326a
commit 96b4fd1da1
3 changed files with 43 additions and 5 deletions

View file

@ -108,7 +108,7 @@ public class ChestGenHooks
{
ret = new ItemStack[0];
}
else if (count > source.getItem().getItemStackLimit())
else if (count > source.getMaxStackSize())
{
ret = new ItemStack[count];
for (int x = 0; x < count; x++)

View file

@ -47,7 +47,15 @@
}
itemsList[256 + par1] = this;
@@ -606,6 +616,7 @@
@@ -334,6 +344,7 @@
/**
* Returns the maximum size of the stack for a specific item. *Isn't this more a Set than a Get?*
*/
+ @Deprecated
public int getItemStackLimit()
{
return this.maxStackSize;
@@ -606,6 +617,7 @@
}
@SideOnly(Side.CLIENT)
@ -55,7 +63,16 @@
public boolean hasEffect(ItemStack par1ItemStack)
{
return par1ItemStack.isItemEnchanted();
@@ -635,7 +646,7 @@
@@ -626,7 +638,7 @@
*/
public boolean isItemTool(ItemStack par1ItemStack)
{
- return this.getItemStackLimit() == 1 && this.isDamageable();
+ return this.getItemStackLimit(par1ItemStack) == 1 && this.isDamageable();
}
protected MovingObjectPosition getMovingObjectPositionFromPlayer(World par1World, EntityPlayer par2EntityPlayer, boolean par3)
@@ -635,7 +647,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;
@ -64,7 +81,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);
@@ -645,6 +656,10 @@
@@ -645,6 +657,10 @@
float f7 = f4 * f5;
float f8 = f3 * f5;
double d3 = 5.0D;
@ -75,7 +92,7 @@
Vec3 vec31 = vec3.addVector((double)f7 * d3, (double)f6 * d3, (double)f8 * d3);
return par1World.rayTraceBlocks_do_do(vec3, vec31, par3, !par3);
}
@@ -753,4 +768,534 @@
@@ -753,4 +769,546 @@
{
StatList.initStats();
}
@ -608,5 +625,17 @@
+ public boolean hasEffect(ItemStack par1ItemStack, int pass)
+ {
+ return hasEffect(par1ItemStack) && (pass == 0 || itemID != Item.potion.itemID);
+ }
+
+ /**
+ * Gets the maximum number of items that this stack should be able to hold.
+ * This is a ItemStack (and thus NBT) sensitive version of Item.getItemStackLimit()
+ *
+ * @param stack The ItemStack
+ * @return THe maximum number this item can be stacked to
+ */
+ public int getItemStackLimit(ItemStack stack)
+ {
+ return this.getItemStackLimit();
+ }
}

View file

@ -8,6 +8,15 @@
public final class ItemStack
{
@@ -223,7 +224,7 @@
*/
public int getMaxStackSize()
{
- return this.getItem().getItemStackLimit();
+ return this.getItem().getItemStackLimit(this);
}
/**
@@ -252,7 +253,9 @@
*/
public boolean isItemDamaged()