| package ic2.api.tile; |
| |
| import net.minecraft.entity.player.EntityPlayer; |
| import net.minecraft.item.ItemStack; |
| |
| /** |
| * Allows a tile entity to make use of the wrench's removal and rotation functions. |
| */ |
| public interface IWrenchable { |
| /** |
| * Determine if the wrench can be used to set the block's facing. |
| * Called before wrenchCanRemove(). |
| * |
| * @param entityPlayer player using the wrench, may be null |
| * @param side block's side the wrench was clicked on |
| * @return Whether the wrenching was done and the wrench should be damaged |
| */ |
| boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side); |
| |
| /** |
| * Get the block's facing. |
| * |
| * @return Block facing |
| */ |
| short getFacing(); |
| |
| /** |
| * Set the block's facing |
| * |
| * @param facing facing to set the block to |
| */ |
| void setFacing(short facing); |
| |
| /** |
| * Determine if the wrench can be used to remove the block. |
| * Called if wrenchSetFacing fails. |
| * |
| * @param entityPlayer player using the wrench, may be null |
| * @return Whether the wrenching was done and the wrench should be damaged |
| */ |
| boolean wrenchCanRemove(EntityPlayer entityPlayer); |
| |
| /** |
| * Determine the probability to drop the block as it is. |
| * The first entry in getBlockDropped will be replaced by blockid:meta if the drop is successful. |
| * |
| * @return Probability from 0 to 1 |
| */ |
| float getWrenchDropRate(); |
| |
| /** |
| * Determine the item the block will drop when the wrenching is successful. |
| * |
| * The ItemStack will be copied before creating the EntityItem. |
| * |
| * @param entityPlayer player using the wrench, may be null |
| * @return ItemStack to drop, may be null |
| */ |
| ItemStack getWrenchDrop(EntityPlayer entityPlayer); |
| } |
| |