package com.eloraam.redpower.base; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; public class ItemPlan extends Item { public ItemPlan() { this.setMaxDamage(0); this.setHasSubtypes(true); this.setUnlocalizedName("planFull"); this.setTextureName("rpbase:planFull"); this.setMaxStackSize(1); } @SideOnly(Side.CLIENT) public String getItemStackDisplayName(ItemStack ist) { if (ist.stackTagCompound == null) { return super.getItemStackDisplayName(ist); } else if (!ist.stackTagCompound.hasKey("result")) { return super.getItemStackDisplayName(ist); } else { NBTTagCompound res = ist.stackTagCompound.getCompoundTag("result"); ItemStack result = ItemStack.loadItemStackFromNBT(res); return result.getItem().getItemStackDisplayName(result) + " Plan"; } } public void addInformation(ItemStack ist, EntityPlayer player, List lines, boolean par4) { if (ist.stackTagCompound != null) { NBTTagList require = ist.stackTagCompound.getTagList("requires", 10); if (require != null) { HashMap, Integer> counts = new HashMap(); for(int i = 0; i < require.tagCount(); ++i) { NBTTagCompound kv = require.getCompoundTagAt(i); ItemStack li = ItemStack.loadItemStackFromNBT(kv); HashMap i2d = new HashMap(); i2d.put(li.getItem(), li.getItemDamage()); Integer lc = (Integer)counts.get(i2d); if (lc == null) { lc = 0; } counts.put(i2d, lc + 1); } for(Entry, Integer> entry : counts.entrySet()) { HashMap keySet = (HashMap)entry.getKey(); ItemStack itemStack = new ItemStack((Item)keySet.keySet().iterator().next(), 1, keySet.values().iterator().next()); lines.add(entry.getValue() + " x " + itemStack.getItem().getItemStackDisplayName(itemStack)); } } } } @SideOnly(Side.CLIENT) public EnumRarity getRarity(ItemStack ist) { return EnumRarity.rare; } public boolean getShareTag() { return true; } }