package minefantasy.mf2.item.custom;
import java.util.HashMap;
import java.util.List;
import minefantasy.mf2.MineFantasyII;
import minefantasy.mf2.api.helpers.CustomToolHelper;
import minefantasy.mf2.api.material.CustomMaterial;
import minefantasy.mf2.item.list.CreativeTabMF;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ItemCustomComponent extends Item
{
@SideOnly(Side.CLIENT)
public IIcon baseTex;
private String name;
private float mass;
public ItemCustomComponent(String name, float mass)
{
this.name = name;
this.setCreativeTab(CreativeTabMF.tabMaterials);
GameRegistry.registerItem(this, "custom_"+name, MineFantasyII.MODID);
this.setUnlocalizedName(name);
this.mass=mass;
}
@Override
public void getSubItems(Item item, CreativeTabs tab, List list)
{
}
public float getWeightInKg(ItemStack tool)
{
CustomMaterial base = getBase(tool);
if(base != null)
{
return base.density * mass;
}
return mass;
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack tool, EntityPlayer user, List list, boolean fullInfo)
{
super.addInformation(tool, user, list, fullInfo);
CustomToolHelper.addComponentString(tool, list, getBase(tool));
}
@Override
public String getItemStackDisplayName(ItemStack tool)
{
CustomMaterial head = getBase(tool);
String matString = "??";
if(head != null)
{
matString = StatCollector.translateToLocal("material."+head.name.toLowerCase() + ".name");
}
return StatCollector.translateToLocalFormatted("item.commodity_"+ name +".name", matString);
}
public CustomMaterial getBase(ItemStack component)
{
return CustomToolHelper.getCustomMetalMaterial(component);
}
@Override
@SideOnly(Side.CLIENT)
public int getRenderPasses(int metadata)
{
return 1;
}
@Override
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack item, int layer)
{
CustomMaterial base = getBase(item);
if(base != null)
{
return base.getColourInt();
}
return super.getColorFromItemStack(item, layer);
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(ItemStack item, int layer)
{
return baseTex;
}
@Override
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses()
{
return true;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister reg)
{
baseTex = reg.registerIcon("minefantasy2:custom/component/"+name);
}
public ItemStack createComm(String base)
{
return createComm(base, 1);
}
public ItemStack createComm(String base, int stack)
{
ItemStack item = new ItemStack(this, stack);
CustomMaterial.addMaterial(item, CustomToolHelper.slot_main, base);
return item;
}
}