freshhh Posted May 19, 2013 Share Posted May 19, 2013 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 ! Quote Link to comment Share on other sites More sharing options...
RANKSHANK Posted May 20, 2013 Share Posted May 20, 2013 you have to extends the class and override the addInformation method. There is no clean way around this Quote I think its my java of the variables. Link to comment Share on other sites More sharing options...
Mew Posted May 20, 2013 Share Posted May 20, 2013 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 Quote 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 Link to comment Share on other sites More sharing options...
freshhh Posted May 20, 2013 Author Share Posted May 20, 2013 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. Quote Link to comment Share on other sites More sharing options...
TwIxToR_TiTaN Posted January 27, 2014 Share Posted January 27, 2014 that is a realy good example you just qouted... Quote Only code when your having fun doing it. Link to comment Share on other sites More sharing options...
Wicked1 Posted January 27, 2014 Share Posted January 27, 2014 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 Quote http://i1149.photobucket.com/albums/o583/battleaxe333/mcMML-objBanner.png[/img] Link to comment Share on other sites More sharing options...
coolAlias Posted January 28, 2014 Share Posted January 28, 2014 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. Quote http://i.imgur.com/NdrFdld.png[/img] Link to comment Share on other sites More sharing options...
TheGreyGhost Posted January 28, 2014 Share Posted January 28, 2014 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.