package minefantasy.mf2.item;
import java.util.List;
import java.util.Random;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import minefantasy.mf2.api.knowledge.InformationBase;
import minefantasy.mf2.api.knowledge.InformationList;
import minefantasy.mf2.api.knowledge.ResearchLogic;
import minefantasy.mf2.api.rpg.RPGElements;
import minefantasy.mf2.api.rpg.Skill;
import minefantasy.mf2.item.list.CreativeTabMF;
import minefantasy.mf2.item.list.ToolListMF;
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.util.ChatComponentText;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
public class ItemSkillBook extends ItemComponentMF
{
private Skill skill;
private String name;
private boolean isMax = false;
public ItemSkillBook(String name, Skill skill)
{
super(name, 1);
setMaxStackSize(16);
setTextureName("minefantasy2:Other/"+name);
this.setCreativeTab(CreativeTabMF.tabGadget);
this.skill = skill;
this.name=name;
}
public Item setMax()
{
isMax = true;
return setMaxStackSize(1);
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack item, EntityPlayer user, List list, boolean fullInfo)
{
if(isMax)
{
list.add(StatCollector.translateToLocal("item."+name+".desc"));
}
else
{
list.add(StatCollector.translateToLocalFormatted("item."+name+".desc", 1));
}
}
@Override
public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer user)
{
boolean used = false;
if(skill != null)
{
int lvl = RPGElements.getLevel(user, skill);
if(lvl < skill.getMaxLevel())
{
if(isMax)
{
skill.manualLvlUp(user, 100);
}
else
{
skill.addXP(user, skill.getLvlXP(lvl, user));
}
used = true;
}
}
if(used)
{
user.worldObj.playSoundEffect(user.posX, user.posY, user.posZ, "minefantasy2:updateResearch", 1.0F, 1.0F);
if(!user.capabilities.isCreativeMode)
{
--item.stackSize;
}
}
return item;
}
@Override
public EnumRarity getRarity(ItemStack item)
{
return isMax ? EnumRarity.epic : EnumRarity.uncommon;
}
}