/*
 * ******************************************************************************
 *  Copyright 2011-2015 CovertJaguar
 *
 *  This work (the API) is licensed under the "MIT" License, see LICENSE.md for details.
 * ***************************************************************************
 */
package mods.railcraft.api.core.items;

import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;

/**
 *
 * @author CovertJaguar <http://www.railcraft.info>
 */
public interface IToolCrowbar {

    /**
     * Controls non-rotational interactions with blocks. Crowbar specific stuff.
     *
     * Rotational interaction is handled by the Block.rotateBlock() function,
     * which should be called from the Item.onUseFirst() function of your tool.
     *
     * @param player
     * @param crowbar
     * @param x
     * @param y
     * @param z
     * @return
     */
    public boolean canWhack(EntityPlayer player, ItemStack crowbar, int x, int y, int z);

    /**
     * Callback to do damage to the item.
     *
     * @param player
     * @param crowbar
     * @param x
     * @param y
     * @param z
     */
    public void onWhack(EntityPlayer player, ItemStack crowbar, int x, int y, int z);

    /**
     * Controls whether you can link a cart.
     *
     * @param player
     * @param crowbar
     * @param cart
     * @return
     */
    public boolean canLink(EntityPlayer player, ItemStack crowbar, EntityMinecart cart);

    /**
     * Callback to do damage.
     *
     * @param player
     * @param crowbar
     * @param cart
     */
    public void onLink(EntityPlayer player, ItemStack crowbar, EntityMinecart cart);

    /**
     * Controls whether you can boost a cart.
     *
     * @param player
     * @param crowbar
     * @param cart
     * @return
     */
    public boolean canBoost(EntityPlayer player, ItemStack crowbar, EntityMinecart cart);

    /**
     * Callback to do damage, boosting a cart usually does more damage than
     * normal usage.
     *
     * @param player
     * @param crowbar
     * @param cart
     */
    public void onBoost(EntityPlayer player, ItemStack crowbar, EntityMinecart cart);
}

@@ -468,17 +468,50 @@
 ack;
+%0Aimport net.minecraft.util.BlockPos;
 %0A%0A/**%0A
- *%0A
  * @
@@ -682,32 +682,37 @@
 ic stuff.%0A     *
+ %3Cp/%3E
 %0A     * Rotation
@@ -873,32 +873,44 @@
  * @param player
+  the player
 %0A     * @param c
@@ -915,32 +915,28 @@
  crowbar
-%0A     * @param x
+ the crowbar
 %0A     * 
@@ -942,33 +942,33 @@
  @param 
-y%0A 
+pos
     
-* @param z
+ the block
 %0A     * 
@@ -966,32 +966,58 @@
 k%0A     * @return
+ true if can whack a block
 %0A     */%0A    pub
@@ -1005,39 +1005,32 @@
 ock%0A     */%0A    
-public 
 boolean canWhack
@@ -1070,35 +1070,28 @@
 rowbar, 
-int x, int y, int z
+BlockPos pos
 );%0A%0A    
@@ -1155,32 +1155,44 @@
  * @param player
+  the player
 %0A     * @param c
@@ -1201,24 +1201,20 @@
 wbar
-%0A     * @param x
+ the crowbar
 %0A   
@@ -1228,25 +1228,25 @@
 ram 
-y%0A
+pos
      
-* @param z
+the block
 %0A   
@@ -1250,31 +1250,24 @@
      */%0A    
-public 
 void onWhack
@@ -1311,27 +1311,20 @@
 ar, 
-int x, int y, int z
+BlockPos pos
 );%0A%0A
@@ -1395,32 +1395,44 @@
  * @param player
+  the player
 %0A     * @param c
@@ -1429,32 +1429,44 @@
 * @param crowbar
+ the crowbar
 %0A     * @param c
@@ -1460,32 +1460,44 @@
    * @param cart
+    the cart
 %0A     * @return%0A
@@ -1487,32 +1487,56 @@
 t%0A     * @return
+ true if can link a cart
 %0A     */%0A    pub
@@ -1524,39 +1524,32 @@
 art%0A     */%0A    
-public 
 boolean canLink(
@@ -1668,32 +1668,44 @@
  * @param player
+  the player
 %0A     * @param c
@@ -1702,32 +1702,44 @@
 * @param crowbar
+ the crowbar
 %0A     * @param c
@@ -1733,32 +1733,44 @@
    * @param cart
+    the cart
 %0A     */%0A    pub
@@ -1762,31 +1762,24 @@
      */%0A    
-public 
 void onLink(
@@ -1914,32 +1914,44 @@
  * @param player
+  the player
 %0A     * @param c
@@ -1948,32 +1948,44 @@
 * @param crowbar
+ the crowbar
 %0A     * @param c
@@ -1983,24 +1983,36 @@
  @param cart
+    the cart
 %0A     * @ret
@@ -2014,16 +2014,41 @@
  @return
+ true if can boost a cart
 %0A     */
@@ -2052,23 +2052,16 @@
  */%0A    
-public 
 boolean 
@@ -2260,24 +2260,36 @@
 param player
+  the player
 %0A     * @par
@@ -2290,32 +2290,44 @@
 * @param crowbar
+ the crowbar
 %0A     * @param c
@@ -2325,24 +2325,36 @@
  @param cart
+    the cart
 %0A     */%0A   
@@ -2354,23 +2354,16 @@
  */%0A    
-public 
 void onB

Update IToolCrowbar