gmod622 Posted January 5, 2014 Posted January 5, 2014 So I just started my mod, and I seem to get a weird error that makes my block not in the game, here is my code: package gmod.mods.roleplay.main; import gmod.mods.roleplay.main.common.block.BlockTest; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLLoadEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = "Roleplay Craft", version = "0.0.1a") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class main_roleplay { public static Block testBlock; public static CreativeTabs tabRoleplay; public static int testBlockID = 3645; public void init(FMLInitializationEvent event) { } @EventHandler public void preInit(FMLPreInitializationEvent event) { testBlock = new BlockTest(testBlockID, Material.cloth).setUnlocalizedName("testBlock").setCreativeTab(this.tabRoleplay); GameRegistry.registerBlock(testBlock, "testBlock"); tabRoleplay = new CreativeTabs("tabRoleplay") { public ItemStack getIconItemStack() { return new ItemStack(Item.eyeOfEnder, 1, 0); }}; } public void load(FMLLoadEvent event) { LanguageRegistry.addName(testBlock, "Test Block"); } } Quote Not new to java >> New to modding.
CJLetsGame Posted January 5, 2014 Posted January 5, 2014 Is the block just not in the tab, or is the tab not there at all. It would help if you initialized the tab BEFORE assigning the block to it... Quote
general3214 Posted January 8, 2014 Posted January 8, 2014 If you somehow did not understand the post above: @EventHandler public void preInit(FMLPreInitializationEvent event) { tabRoleplay = new CreativeTabs("tabRoleplay") { public ItemStack getIconItemStack() { return new ItemStack(Item.eyeOfEnder, 1, 0); }}; testBlock = new BlockTest(testBlockID, Material.cloth).setUnlocalizedName("testBlock").setCreativeTab(this.tabRoleplay); GameRegistry.registerBlock(testBlock, "testBlock"); } Quote Before you even think about modding, please learn basic Java.
Naah Posted January 10, 2014 Posted January 10, 2014 I'm *really* new to this, but don't you have to register the same string name through GameRegistry.registerBlock and LanguageRegistry.addName? At least, I'm doing that and I have things showing up in the Creative inventory. It may not actually be required, but couldn't hurt to check right? Quote
general3214 Posted January 10, 2014 Posted January 10, 2014 don't you have to register the same string name through GameRegistry.registerBlock and LanguageRegistry.addName? No. GameRegistry.registerBlock registers a block into the code. LanguageRegistry.addName adds a name to be displayed in-game. For example: Block testBlock = new Block(1000, Material.air).setUnlocalizedName("testBlock").setTextureName("test_block"); GameRegistry.registerBlock(testBlock, "testBlock"); LanguageRegistry.addName(testBlock, "Test Block"); I personally like to register blocks with their unlocalized names like so: GameRegistry.registerBlock(testBlock, testBlock.getUnlocalizedName.substring(5)); Quote Before you even think about modding, please learn basic Java.
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.