package sourcecoded.quantum.item; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; import mcp.mobius.waila.api.IWailaDataProvider; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import sourcecoded.quantum.api.translation.LocalizationUtils; import sourcecoded.quantum.block.BlockQuantum; import java.util.ArrayList; import java.util.List; public class ItemBlockQuantum extends ItemBlock implements IWailaDataProvider { public List<String> loreList; public ItemBlockQuantum(Block block) { super(block); loreList = new ArrayList<String>(); this.setMaxDamage(0); if (block instanceof BlockQuantum) this.setHasSubtypes(((BlockQuantum) block).subtypes); } @Override public String getItemStackDisplayName(ItemStack item) { String translateString = this.field_150939_a.getUnlocalizedName() + ".name"; if (hasSubtypes) translateString += "@" + item.getItemDamage(); String translate = LocalizationUtils.translateLocalWithColours(translateString, translateString); return translate; } public void tryLore(String unlocalizedBase, ItemStack stack) { loreList = new ArrayList<String>(); boolean search = true; int run = 0; while (search) { String formatted = unlocalizedBase + ".lore." + run; if (hasSubtypes) formatted += "@" + stack.getItemDamage(); if (StatCollector.canTranslate(formatted)) { loreList.add(LocalizationUtils.translateLocalWithColours(formatted, "You shouldn't be seeing this, report this please")); } else search = false; run++; } } @SideOnly(Side.CLIENT) public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean idk) { tryLore(itemStack.getUnlocalizedName(), itemStack); list.addAll(loreList); } public int getMetadata(int damage) { return damage; } @Override public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) { return null; } @Override public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { return currenttip; } @Override public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { List<String> dummyTip = new ArrayList<String>(); addInformation(itemStack, accessor.getPlayer(), dummyTip, true); for (String tip : dummyTip) if (!currenttip.contains(tip)) currenttip.add(tip); return currenttip; } @Override public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { return currenttip; } }