Posted May 8, 20169 yr ive made a block render with .json when placed in world but I don't know how to have it render when on hand
May 8, 20169 yr I'm assuming you would need to create an item model for the block as well. Do this the same way you would use the model for an item in json, except use the block's name. You can see an example file in the forge source.
May 8, 20169 yr Here's what worked for me. Put this just after you register your block: ItemBlock myItem = new ItemBlock(myBlock); GameRegistry.register(myItem.setRegistryName(myBlock.getRegistryName())); Put this in init: Minecraft.getMinecraft().getRenderItem().getItemModelMesher() .register(myItem, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
May 9, 20169 yr I would recommend using ModelLoader.setCustomModelResourceLocation / setCustomMeshDefinition in preInit rather than ItemModelMesher#register in init. Regardless of which method you use, this must only be done on the client; so do it from your client proxy. You can see a more generic way to register a Block and its ItemBlock here. This makes use of several Java 8 features (functional interfaces, lambdas, method references), you'd need to replace these with the corresponding Java 6/7 features (Guava's functional interfaces, anonymous classes) if you're not targeting Java 8. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
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.