I think you can do this by overriding breakBlock (I forget if it takes a player parameter). If so, check if the player is holding your tool and spawn some item, and otherwise spawn a different item.
Yes, get rid of those methods. Try setBlockTextureName("yourmodid:basic"). Also, what does @GameRegistry.ObjectHolder do? And you might wanna follow a different tutorial, lots of people have had problems with this one.
What are you doing with registerBlockIcons and getUnlocalizedName? Just use setUnlocalizedName and setBlockTextureName in the constructor. Try:
setBlockTextureName("bettercraftingtables:whatever")