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.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.util.StatCollector; import net.minecraft.world.World; public class ItemResearchScroll extends ItemComponentMF { private boolean isComplete; public ItemResearchScroll(String name, boolean complete) { super(name, 0); setMaxStackSize(1); this.isComplete = complete; setTextureName("minefantasy2:Other/"+name); this.setCreativeTab(CreativeTabMF.tabGadget); setHasSubtypes(true); setMaxDamage(0); if(!isComplete) { InformationBase.scroll = this; } } @Override public void getSubItems(Item item, CreativeTabs tab, List list) { } @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack item, EntityPlayer user, List list, boolean fullInfo) { if(item.getItemDamage() >= InformationList.knowledgeList.size()) { return; } InformationBase info = InformationList.knowledgeList.get(item.getItemDamage()); if(info != null) { list.add(info.getName()); } } @Override public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer user) { if(!isComplete) { return item; } boolean used = false; if(item.getItemDamage() >= InformationList.knowledgeList.size()) { return item; } InformationBase info = InformationList.knowledgeList.get(item.getItemDamage()); if(info != null) { if(ResearchLogic.hasInfoUnlocked(user, info)) { user.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("knowledge.known"))); } else if(!info.hasSkillsUnlocked(user)) { user.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("skill.lowskill"))); } else { used = ResearchLogic.tryUnlock(user, info); } } if(used) { if(user.worldObj.isRemote) { user.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("knowledge.unlocked") + ": " + StatCollector.translateToLocal(info.getName()))); } user.worldObj.playSoundEffect(user.posX, user.posY, user.posZ, "minefantasy2:updateResearch", 1.0F, 1.0F); if(!user.capabilities.isCreativeMode) { --item.stackSize; } } return item; } }