package crazypants.enderio.tool;
import java.lang.reflect.Method;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import appeng.api.implementations.items.IAEWrench;
import crazypants.enderio.api.tool.ITool;
public class AEToolProvider implements IToolProvider, IToolImpl {
private AETool aeTool = new AETool();
public AEToolProvider() throws Exception {
//Do a check for so we throw an exception in the constructor if we dont have the
// wrench class
Class.forName("appeng.api.implementations.items.IAEWrench");
}
@Override
public Class<?> getInterface() {
return IAEWrench.class;
}
@Override
public Object handleMethod(ITool yetaWrench, Method method, Object[] args) {
return true;
}
@Override
public ITool getTool(ItemStack stack) {
if(!(stack.getItem() instanceof IAEWrench)) {
return null;
}
return aeTool;
}
public static class AETool implements ITool {
@Override
public boolean canUse(ItemStack stack, EntityPlayer player, int x, int y, int z) {
if(!(stack.getItem() instanceof IAEWrench)) {
return false;
}
IAEWrench wrench = (IAEWrench) stack.getItem();
return wrench.canWrench(stack, player, x, y, z);
}
@Override
public void used(ItemStack stack, EntityPlayer player, int x, int y, int z) {
}
@Override
public boolean shouldHideFacades(ItemStack stack, EntityPlayer player) {
return true;
}
}
}