Posted May 19, 201312 yr Hi, so I'm looking to add lore (.addInformation) to some of my items, but my problem is, I got 3 class files that serve for over 10 items each, how to I add lore to my items without editting these 3 class files ( if that's possible ), I want it so that I can just add lore to this piece of line UA3 = (ItemFood)new Sub3( UAID3, 10, 5.0F, false).setAlwaysEdible().setPotionEffect(13, 1800, 1, 1.0F).setCreativeTab(CreativeTabs.tabFood).setUnlocalizedName("UA3"); By the way, lore is when you hover your mouse over an item you get like a second name under the actualy name, some sort of description, if anyone can help me with this I'd thank you in advanced, please note I'm a beginner modder so no expert nano talk please ! Also if you want to help me, please post an example of how you did it, as I said I'm no nano rocket science computer engineer !
May 20, 201312 yr you have to extends the class and override the addInformation method. There is no clean way around this I think its my java of the variables.
May 20, 201312 yr Actually, there is a way to do this . here is an example of an Item file that I can use for multiple items with lore: package rpg.items; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class ItemMultipleItemWithLore extends Item { // this string holds the lore String lore; // this constructor would be for an item with lore public ItemMultipleItemWithLore(int par1, String lore) { super(par1); this.lore = lore; } @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public void addInformation(ItemStack par1ItemStack, EntityPlayer player, List par3List, boolean par4) { par3List.add(lore); } } I hope this helps. whatever you write into the string as lore will apear ONLY for that item, so it can have different lore for each item I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes. I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there
May 20, 201312 yr Author Actually, there is a way to do this . here is an example of an Item file that I can use for multiple items with lore: package rpg.items; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class ItemMultipleItemWithLore extends Item { // this string holds the lore String lore; // this constructor would be for an item with lore public ItemMultipleItemWithLore(int par1, String lore) { super(par1); this.lore = lore; } @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public void addInformation(ItemStack par1ItemStack, EntityPlayer player, List par3List, boolean par4) { par3List.add(lore); } } I hope this helps. whatever you write into the string as lore will apear ONLY for that item, so it can have different lore for each item Could you give me an example ? I'm sorry if I'm a pain in the ass but I'm kinda new and the only way I learn is examples lol.
January 27, 201411 yr that is a realy good example you just qouted... Only code when your having fun doing it.
January 27, 201411 yr I just added lore to my SubType by damage item class.. I have 3 subitems on that ID atm. I chose to use a single LoreLib static library to keep all the lore centralized and easy for config file to deal with later. in the subtyped item I added the method for addInformation(,,,) but then immediately just passed it along to my library to actually process public void addInformation(ItemStack pStack, EntityPlayer pPlayer, List pList, boolean pBool) { LoreLib.getLore( pStack, pList); } and the LoreLib class with teh actual strings public class LoreLib { public static void getLore( ItemStack pStack, List pList){ int thing = pStack.itemID; int subtype = pStack.getItemDamage(); String stx = ""; if ( thing == Itemz.bimBows.itemID){ switch (subtype){ case 0: stx = "Lore for BimBows-0: First of the metabows"; break; case 1: stx = "Lore for BimBows-1: Second of the metabows"; break; case 2: stx = "Lore for BimBows-2: Third of the metabows"; break; default: } } pList.add(stx); return; } I'm not saying this is any better, but its another way to do it if you're into this kind of thing. I would have liked to use another SWITCH on the ItemID, but it wasnt cooperating. I might be consolidating the text to strings so I will be able to load them from config file. Also, I havent vandal proofed it yet with null checks and whatnot http://i1149.photobucket.com/albums/o583/battleaxe333/mcMML-objBanner.png[/img]
January 28, 201411 yr Yet another method is to use a language file to store your descriptions and make sure each item has the same number of lines of lore: // just to note, this is in one of my classes that has 5+ different items using it, each with different lore @Override @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) { list.add(EnumChatFormatting.ITALIC + StatCollector.translateToLocal("tooltip.zss." + getUnlocalizedName().substring(9) + ".desc.0")); } I use substring(9) because I prefix my items with 'zss.' + 'item.'; anyway, so my language file (named 'en_US' and located in 'assets/lang') would look like this: tooltip.zss.some_item.desc.0=Some item's lore tooltip.zss.some_other_item.desc.0=Some other item's lore Obviously you can add as many fields as you want, desc.1, desc.2, etc. and just add them all in the tooltip. Mew's suggestion is easier, but if you plan on adding language support, then you'll need to do this anyway. I'm sure someone with better Java than me could figure out a way to support each item containing different numbers of lore lines as well, but I just standardized all my items. http://i.imgur.com/NdrFdld.png[/img]
January 28, 201411 yr Hi The ItemTooltipEvent might also be of some use. If you hook into it, you could use the Item as a key to search your "lore" descriptions for that Item. All your lore descriptions are then kept in a single class, you can add lore for vanilla items, and you can keep your Item classes completely separate if you want. -TGG
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.