package minefantasy.mf2.item.tool.crafting;
import java.util.List;
import minefantasy.mf2.MineFantasyII;
import minefantasy.mf2.api.helpers.ToolHelper;
import minefantasy.mf2.api.tier.IToolMaterial;
import minefantasy.mf2.api.tool.IToolMF;
import minefantasy.mf2.api.weapon.IDamageType;
import minefantasy.mf2.item.list.CreativeTabMF;
import minefantasy.mf2.item.list.ToolListMF;
import minefantasy.mf2.item.tool.ToolMaterialMF;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemTool;
import com.google.common.collect.Sets;
import cpw.mods.fml.common.registry.GameRegistry;
/**
* @author Anonymous Productions
*/
public class ItemEngineerTool extends ItemTool implements IToolMaterial, IToolMF, IDamageType
{
private ToolMaterial material;
private int tier;
private String toolType;
public ItemEngineerTool(String name, ToolMaterial material, int tier, String toolType, int rarity)
{
super(1.0F, material, Sets.newHashSet(new Block[] {}));
this.toolType=toolType;
this.material = material;
this.tier = tier;
itemRarity = rarity;
setCreativeTab(CreativeTabMF.tabCraftTool);
setTextureName("minefantasy2:Tool/Crafting/Engineer/"+name);
GameRegistry.registerItem(this, name, MineFantasyII.MODID);
this.setUnlocalizedName(name);
}
private int itemRarity;
@Override
public EnumRarity getRarity(ItemStack item)
{
int lvl = itemRarity+1;
if(item.isItemEnchanted())
{
if(lvl == 0)
{
lvl++;
}
lvl ++;
}
if(lvl >= ToolListMF.rarity.length)
{
lvl = ToolListMF.rarity.length-1;
}
return ToolListMF.rarity[lvl];
}
@Override
public ToolMaterial getMaterial()
{
return toolMaterial;
}
@Override
public float getEfficiency(ItemStack item)
{
return ToolHelper.modifyDigOnQuality(item, material.getEfficiencyOnProperMaterial());
}
@Override
public int getTier(ItemStack item)
{
return tier;
}
@Override
public String getToolType(ItemStack item)
{
return toolType;
}
@Override
public int getMaxDamage(ItemStack stack)
{
return ToolHelper.setDuraOnQuality(stack, super.getMaxDamage());
}
@Override
public float[] getDamageRatio(Object... implement)
{
return new float[]{0,1, 0};
}
@Override
public float getPenetrationLevel(Object implement)
{
return 0F;
}
}