package minefantasy.mf2.item.tool.crafting;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import minefantasy.mf2.MineFantasyII;
import minefantasy.mf2.api.helpers.CustomToolHelper;
import minefantasy.mf2.api.helpers.ToolHelper;
import minefantasy.mf2.api.material.CustomMaterial;
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 net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
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;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* @author Anonymous Productions
*/
public class ItemBasicCraftTool extends ItemTool implements IToolMaterial, IToolMF, IDamageType
{
private int tier;
private String name;
private String toolType;
public ItemBasicCraftTool(String name, String type, int tier, int uses)
{
super(1.0F, ToolMaterial.WOOD, Sets.newHashSet(new Block[] {}));
this.tier = tier;
setCreativeTab(CreativeTabMF.tabCraftTool);
this.name=name;
toolType = type;
setTextureName("minefantasy2:Tool/Crafting/"+name);
GameRegistry.registerItem(this, name, MineFantasyII.MODID);
this.setUnlocalizedName(name);
setMaxDamage(uses);
this.setMaxStackSize(1);
}
@Override
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack item, int layer)
{
return CustomToolHelper.getColourFromItemStack(item, layer, super.getColorFromItemStack(item, layer));
}
@Override
public ToolMaterial getMaterial()
{
return toolMaterial;
}
@Override
public String getToolType(ItemStack item)
{
return toolType;
}
@Override
public float[] getDamageRatio(Object... implement)
{
return new float[]{0,1, 0};
}
private void addSet(List list, Item[] items)
{
for(Item item:items)
{
list.add(new ItemStack(item));
}
}
@Override
public float getPenetrationLevel(Object implement)
{
return 0F;
}
//===================================================== CUSTOM START =============================================================\\
private boolean isCustom = false;
public ItemBasicCraftTool setCustom(String s)
{
canRepair = false;
setTextureName("minefantasy2:custom/tool/"+s+"/"+name);
isCustom = true;
return this;
}
public ItemStack construct(String main)
{
return CustomToolHelper.construct(this, main);
}
@Override
public int getMaxDamage(ItemStack stack)
{
return CustomToolHelper.getMaxDamage(stack, super.getMaxDamage(stack));
}
@Override
public void getSubItems(Item item, CreativeTabs tab, List list)
{
if(isCustom)
{
list.add(this.construct("OakWood"));
list.add(this.construct("IronbarkWood"));
list.add(this.construct("EbonyWood"));
}
else
{
super.getSubItems(item, tab, list);
}
}
@Override
public void addInformation(ItemStack item, EntityPlayer user, List list, boolean extra)
{
super.addInformation(item, user, list, extra);
}
private float efficiencyMod = 1.0F;
@Override
public float getEfficiency(ItemStack item)
{
return CustomToolHelper.getEfficiencyForHds(item, toolMaterial.getEfficiencyOnProperMaterial(), efficiencyMod);
}
@Override
public int getTier(ItemStack item)
{
return CustomToolHelper.getCrafterTier(item, tier);
}
@Override
@SideOnly(Side.CLIENT)
public String getItemStackDisplayName(ItemStack item)
{
String unlocalName = this.getUnlocalizedNameInefficiently(item) + ".name";
return CustomToolHelper.getLocalisedName(item, unlocalName);
}
protected int itemRarity;
@Override
public EnumRarity getRarity(ItemStack item)
{
return CustomToolHelper.getRarity(item, itemRarity);
}
}