candlemaster Posted March 15, 2013 Posted March 15, 2013 So, I'm just starting out learning the forge api (7.7.0), following the basic tutorials on the forge wiki (which have been extremely helpful, even with 1.5 being so new). I was able to get a couple of blocks and items working, even with new textures (it wasn't hard to figure out from the wiki, though I'm still not sure how to handle side textures). However, a big problem I'm having, is that both of my items have the same name, and likewise both of my blocks have the same name, despite them being different in code. Here's an except from my Generic.java: public final static Block genericDirt = new GenericBlock(500, Material.rock); public final static Block genericOre = new GenericOre(501, Material.iron); public final static Item genericGem = new GenericItem(5000); public final static Item genericThingy = new GenericThingy(5001); @Init public void load(FMLInitializationEvent event) { proxy.registerRenderers(); LanguageRegistry.addName(genericGem, "Generic Gem"); LanguageRegistry.addName(genericThingy, "Generic Thingy"); LanguageRegistry.addName(genericOre, "Generic Ore"); MinecraftForge.setBlockHarvestLevel(genericOre, "pickaxe", 3); GameRegistry.registerBlock(genericOre, "genericOre"); LanguageRegistry.addName(genericDirt, "Generic Block"); MinecraftForge.setBlockHarvestLevel(genericDirt, "pickaxe", 0); GameRegistry.registerBlock(genericDirt, "genericDirt"); } In-game, both of my blocks are named "Generic Block", when one of them is supposed to be named "Generic Ore". Both of my items are named "Generic Thingy", when one of them is supposed to be named "Generic Gem". Everything else - materials, sounds, textures, item drops, etc. - works as intended. What am I doing wrong? SOLVED: I fixed it by using setUnlocalizedName() with the blocks and items. In the tutorials, setBlockName()/setItemName() was used, but these methods no longer exist, so I simply removed them. Using setUnlocalizedName() in their placed fixed everything. Quote
robustus Posted March 15, 2013 Posted March 15, 2013 I think you need to have the register blocks before you add the name and set the harvest level Quote
candlemaster Posted March 15, 2013 Author Posted March 15, 2013 I tried registering the blocks before adding the names, but nothing changed. They were both still called "Generic Block". Quote
Lomeli12 Posted March 15, 2013 Posted March 15, 2013 So, I'm just starting out learning the forge api (7.7.0), following the basic tutorials on the forge wiki (which have been extremely helpful, even with 1.5 being so new). I was able to get a couple of blocks and items working, even with new textures (it wasn't hard to figure out from the wiki, though I'm still not sure how to handle side textures). However, a big problem I'm having, is that both of my items have the same name, and likewise both of my blocks have the same name, despite them being different in code. Here's an except from my Generic.java: public final static Block genericDirt = new GenericBlock(500, Material.rock); public final static Block genericOre = new GenericOre(501, Material.iron); public final static Item genericGem = new GenericItem(5000); public final static Item genericThingy = new GenericThingy(5001); @Init public void load(FMLInitializationEvent event) { proxy.registerRenderers(); LanguageRegistry.addName(genericGem, "Generic Gem"); LanguageRegistry.addName(genericThingy, "Generic Thingy"); LanguageRegistry.addName(genericOre, "Generic Ore"); MinecraftForge.setBlockHarvestLevel(genericOre, "pickaxe", 3); GameRegistry.registerBlock(genericOre, "genericOre"); LanguageRegistry.addName(genericDirt, "Generic Block"); MinecraftForge.setBlockHarvestLevel(genericDirt, "pickaxe", 0); GameRegistry.registerBlock(genericDirt, "genericDirt"); } In-game, both of my blocks are named "Generic Block", when one of them is supposed to be named "Generic Ore". Both of my items are named "Generic Thingy", when one of them is supposed to be named "Generic Gem". Everything else - materials, sounds, textures, item drops, etc. - works as intended. What am I doing wrong? Try it like this. It's how I always do it, plus it's far cleaner. public static Block genericDirt; public static Block genericOre; public static Item genericGem; public static Item genericThingy; @Init public void load(FMLInitializationEvent event) { proxy.registerRenderers(); //Blocks genericDirt = new GenericBlock(500, Material.rock).setUnlocalizedName("genericDirt"); genericOre = new GenericOre(501, Material.iron).setUnlocalizedName("genericOre"); GameRegistry.registerBlock(genericDirt, "Generic Dirt"); GameRegistry.registerBlock(genericOre, "Generic Ore"); LanguageRegistry.addName(genericDirt, "Generic Dirt"); LanguageRegistry.addName(genericOre, "Generic Ore"); MinecraftForge.setBlockHarvestLevel(genericDirt, "pickaxe", 0); MinecraftForge.setBlockHarvestLevel(genericOre, "pickaxe", 3); //items genericGem = new GenericItem(5000).setUnlocalizedName("genericGem"); genericThingy = new GenericThingy(5001).setUnlocalizedName("genericThingy"); LanguageRegistry.addName(genericGem, "Generic Gem"); LanguageRegistry.addName(genericThingy, "Generic Thingy"); } Quote
candlemaster Posted March 15, 2013 Author Posted March 15, 2013 That fixed it! Thank you so much! Quote
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.