84 lines
3.4 KiB
Diff
84 lines
3.4 KiB
Diff
--- ../src_base/minecraft/net/minecraft/src/PlayerControllerSP.java 0000-00-00 00:00:00.000000000 -0000
|
|
+++ ../src_work/minecraft/net/minecraft/src/PlayerControllerSP.java 0000-00-00 00:00:00.000000000 -0000
|
|
@@ -1,6 +1,7 @@
|
|
package net.minecraft.src;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
+import net.minecraft.src.forge.ForgeHooks;
|
|
|
|
public class PlayerControllerSP extends PlayerController
|
|
{
|
|
@@ -35,11 +36,17 @@
|
|
*/
|
|
public boolean onPlayerDestroyBlock(int par1, int par2, int par3, int par4)
|
|
{
|
|
+ ItemStack stack = mc.thePlayer.getCurrentEquippedItem();
|
|
+ if (stack != null && stack.getItem().onBlockStartBreak(stack, par1, par2, par3, mc.thePlayer))
|
|
+ {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
int var5 = this.mc.theWorld.getBlockId(par1, par2, par3);
|
|
int var6 = this.mc.theWorld.getBlockMetadata(par1, par2, par3);
|
|
boolean var7 = super.onPlayerDestroyBlock(par1, par2, par3, par4);
|
|
ItemStack var8 = this.mc.thePlayer.getCurrentEquippedItem();
|
|
- boolean var9 = this.mc.thePlayer.canHarvestBlock(Block.blocksList[var5]);
|
|
+ boolean var9 = Block.blocksList[var5].canHarvestBlock(mc.thePlayer, var6);
|
|
|
|
if (var8 != null)
|
|
{
|
|
@@ -75,7 +82,7 @@
|
|
Block.blocksList[var5].onBlockClicked(this.mc.theWorld, par1, par2, par3, this.mc.thePlayer);
|
|
}
|
|
|
|
- if (var5 > 0 && Block.blocksList[var5].blockStrength(this.mc.thePlayer) >= 1.0F)
|
|
+ if (var5 > 0 && Block.blocksList[var5].blockStrength(mc.theWorld, mc.thePlayer, par1, par2, par3) >= 1.0F)
|
|
{
|
|
this.onPlayerDestroyBlock(par1, par2, par3, par4);
|
|
}
|
|
@@ -117,7 +124,7 @@
|
|
}
|
|
|
|
Block var6 = Block.blocksList[var5];
|
|
- this.curBlockDamage += var6.blockStrength(this.mc.thePlayer);
|
|
+ this.curBlockDamage += var6.blockStrength(mc.theWorld, this.mc.thePlayer, par1, par2, par3);
|
|
|
|
if (this.blockDestroySoundCounter % 4.0F == 0.0F && var6 != null)
|
|
{
|
|
@@ -195,8 +202,34 @@
|
|
*/
|
|
public boolean onPlayerRightClick(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack, int par4, int par5, int par6, int par7)
|
|
{
|
|
+ if (par3ItemStack != null &&
|
|
+ par3ItemStack.getItem() != null &&
|
|
+ par3ItemStack.getItem().onItemUseFirst(par3ItemStack, par1EntityPlayer, par2World, par4, par5, par6, par7))
|
|
+ {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
int var8 = par2World.getBlockId(par4, par5, par6);
|
|
- return var8 > 0 && Block.blocksList[var8].blockActivated(par2World, par4, par5, par6, par1EntityPlayer) ? true : (par3ItemStack == null ? false : par3ItemStack.useItem(par1EntityPlayer, par2World, par4, par5, par6, par7));
|
|
+ if (var8 > 0 && Block.blocksList[var8].blockActivated(par2World, par4, par5, par6, par1EntityPlayer))
|
|
+ {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ if (par3ItemStack == null)
|
|
+ {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ if (!par3ItemStack.useItem(par1EntityPlayer, par2World, par4, par5, par6, par7))
|
|
+ {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ if (par3ItemStack.stackSize <= 0)
|
|
+ {
|
|
+ ForgeHooks.onDestroyCurrentItem(par1EntityPlayer, par3ItemStack);
|
|
+ }
|
|
+ return true;
|
|
}
|
|
|
|
public boolean func_35642_f()
|