package jp.plusplus.fbs.item; import com.mojang.realmsclient.gui.ChatFormatting; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import jp.plusplus.fbs.FBS; import jp.plusplus.fbs.Registry; import jp.plusplus.fbs.exprop.FBSEntityProperties; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.*; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import java.util.*; /** * Createdby pluslus_Fon 2015/06/06. */ public class ItemBookNoDecoded extends ItemBase { private IIcon iconOverlay; public ItemBookNoDecoded(){ setCreativeTab(FBS.tabBook); setMaxStackSize(1); setUnlocalizedName("bookNDec"); setTextureName("bookNoDecoded"); setHasSubtypes(true); } @Override public int getMaxItemUseDuration(ItemStack p_77626_1_){ return 20*6; } @Override public EnumAction getItemUseAction(ItemStack p_77661_1_) { return FBS.actionDecode; } @Override public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { /* ItemStack helm=p_77659_3_.getCurrentArmor(3); if(helm!=null && helm.getItem() instanceof ItemMonocle) { p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); } */ if(ItemMonocle.findMonocle(p_77659_3_)!=null) p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); return p_77659_1_; } @Override public ItemStack onEaten(ItemStack itemStack, World world, EntityPlayer player) { if(!itemStack.hasTagCompound()) return itemStack; ItemStack monocle=ItemMonocle.findMonocle(player); if(monocle==null) return itemStack; if(!player.capabilities.isCreativeMode){ ItemMonocle.damageMonocle(player, monocle); player.inventory.markDirty(); } if(world.isRemote) return itemStack; NBTTagCompound nbt=itemStack.getTagCompound(); boolean result=Registry.TryDecodingBook(nbt.getString("title"), player, true); if(result){ NBTTagCompound nbtNew=(NBTTagCompound)nbt.copy(); nbtNew.setString("decoder", player.getDisplayName()); ItemStack ret=null; String t=nbt.getString("title"); if(Registry.GetBook(t).isMagic) { ret=new ItemStack(ItemCore.bookSorcery, 1, itemStack.getItemDamage()); ret.setTagCompound(nbtNew); ((ItemBookSorcery)ItemCore.bookSorcery).setMagicMaxUse(ret, Registry.GetMagic(t)); } else{ ret=new ItemStack(ItemCore.bookOld, 1, itemStack.getItemDamage()); ret.setTagCompound(nbtNew); } return ret; } //p_77654_2_.playSoundAtEntity(p_77654_3_, "random.burp", 0.5F, p_77654_2_.rand.nextFloat() * 0.1F + 0.9F); return itemStack; } @Override public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) { Map.Entry[] books=Registry.GetBooks(); Arrays.sort(books, new Comparator>() { @Override public int compare(Map.Entry o1, Map.Entry o2) { return o1.getValue().lv-o2.getValue().lv; } }); for(int i=0;i 0 ? iconOverlay : itemIcon; } @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack par1ItemStack, int par2) { if(par2==0) return 0xffffff; int d=par1ItemStack.getItemDamage(); int r=(d>>8)&0xf, g=(d>>4)&0xf, b=d&0xf; return ~(((r*17)<<16)+((g*17)<<8)+(b*17)); } @Override public String getItemStackDisplayName(ItemStack item){ String s=getLocalizedBookTitle(item); if(s.length()==0) return super.getItemStackDisplayName(item); return s; } }