/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* or licensed for use by CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.plugins.thaumcraft;
import mods.railcraft.common.core.RailcraftConfig;
import mods.railcraft.common.items.ItemCrowbar;
import mods.railcraft.common.plugins.forge.RailcraftRegistry;
import mods.railcraft.common.util.misc.Game;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import thaumcraft.api.IRepairable;
import thaumcraft.api.IWarpingGear;
import thaumcraft.api.ThaumcraftApi;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
import thaumcraft.api.crafting.IArcaneRecipe;
import thaumcraft.api.research.ResearchItem;
import thaumcraft.api.research.ResearchPage;
public class ItemCrowbarVoid extends ItemCrowbar implements IRepairable, IWarpingGear {
public static final String ITEM_TAG = "railcraft.tool.crowbar.void";
public static final String RESEARCH_TAG = "RC_Crowbar_Void";
public static Item item;
public ItemCrowbarVoid() {
super(ThaumcraftPlugin.getVoidmetalToolMaterial());
setUnlocalizedName(ITEM_TAG);
}
public static void registerItem() {
if (item == null && RailcraftConfig.isItemEnabled(ITEM_TAG)) {
item = new ItemCrowbarVoid();
RailcraftRegistry.register(item);
}
}
public static void registerResearch() {
if (item == null)
return;
try {
IArcaneRecipe recipe = ThaumcraftApi.addArcaneCraftingRecipe(RESEARCH_TAG, new ItemStack(item),
new AspectList().add(Aspect.ENTROPY, 50),
" RI",
"RIR",
"IR ",
'I', ThaumcraftPlugin.getItem("itemResource", 16),
'R', "dyeRed");
AspectList aspects = new AspectList();
aspects.add(Aspect.TOOL, 2).add(Aspect.MECHANISM, 4).add(Aspect.TRAVEL, 2);
ResearchItemRC voidCrowbar = new ResearchItemRC(RESEARCH_TAG, ThaumcraftPlugin.RESEARCH_CATEGORY, aspects, 0, 1, 3, new ItemStack(item));
voidCrowbar.setPages(ThaumcraftPlugin.getResearchPage(RESEARCH_TAG), new ResearchPage(recipe))
.setParents(ItemCrowbarMagic.RESEARCH_TAG).setParentsHidden("VOIDMETAL")
.registerResearchItem();
} catch (Throwable error) {
Game.logErrorAPI("Thaumcraft", error, ResearchItem.class);
}
}
public static ItemStack getItem() {
if (item == null)
return null;
return new ItemStack(item);
}
@Override
public void onUpdate(ItemStack stack, World world, Entity entity, int p_77663_4_, boolean p_77663_5_) {
super.onUpdate(stack, world, entity, p_77663_4_, p_77663_5_);
if (stack.isItemDamaged() && entity != null && entity.ticksExisted % 20 == 0 && entity instanceof EntityLivingBase) {
stack.damageItem(-1, (EntityLivingBase) entity);
}
}
@Override
public int getWarp(ItemStack itemstack, EntityPlayer player) {
return 1;
}
}