Posted June 4, 201312 yr Hi! I am trying to make subblock with same ID but different metadata. Wiki tutorial http://www.minecraftforge.net/wiki/Metadata_Based_Subblocks and all tutorials I have found on the Internet are using LanguageRegistry.addName(ItemStack, String). Declaration of .addName looks like it doesnt care about metadata, but anyway... I have something like this for testing: for (int i = 0; i < 16; i++) { ItemStack wireStack = new ItemStack(wire, 1, i); LanguageRegistry.addName(wireStack, i + " wire"); } In game I got "15 wire" for every metadata. So how to do it, becouse I have no clue? If there only was someting like public String getBlockDisplayName(ItemStack par1ItemStack) insinde Block class just like it is in the Item class... //I'm using .722 build
June 5, 201312 yr Wherever you do your languageregistry you want something like this: GameRegistry.registerBlock(rpDecorBlocks, ItemRPDecorBlocks.class, "Silvania" + (rpDecorBlocks.getUnlocalizedName().substring(5))); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 0), "Calcite"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 1), "Graphite"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 2), "Calcite Bricks"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 3), "Graphite Cobblestone"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 4), "Graphite Bricks"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 5), "Chiseled Graphite Brick"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 6), "Graphite Paver"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 7), "Calcite Cobblestone"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, , "Chiseled Calcite Brick"); LanguageRegistry.addName(new ItemStack(rpDecorBlocks, 1, 9), "Calcite Paver"); The two numbers are quantity and meta, obviously quantity should always be 1. Add or remove more lines as required for the amount you have http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats
June 5, 201312 yr Author Ok so looking through the code I have already figured out this: Item.itemsList[wire.blockID] = new ItemBlockWire(wire.blockID - 256); and inside ItemBlockWire I just used public String getItemDisplayName(ItemStack par1ItemStack) But you method is more correct - but I will still use getItemDisplayName since I have to create separate item class for colored blocks anyway. And about third parameter - what is correct way for mod-uniqe blocks name? "dex3r.tile.wire" or "dex3r.wire"?
June 5, 201312 yr Ok so looking through the code I have already figured out this: Item.itemsList[wire.blockID] = new ItemBlockWire(wire.blockID - 256); and inside ItemBlockWire I just used public String getItemDisplayName(ItemStack par1ItemStack) But you method is more correct - but I will still use getItemDisplayName since I have to create separate item class for colored blocks anyway. And about third parameter - what is correct way for mod-uniqe blocks name? "dex3r.tile.wire" or "dex3r.wire"? The more elegant way to add the ItemBlock is to change your registry line from GameRegistry.registerBlock(blockWire,"blockWire"); to GameRegistry.registerBlock(blockWire,ItemBlockWire.class,"blockWire"); As for the correct unlocalized name... I wouldn't know anything about good practice. BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
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.