Posted May 27, 201510 yr In preInit i do GameRegistry.registerItem and in init i do Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MODID+":"+itemname, "inventory")) I quintuple-checked the file locations so that the texture is in assets.MODID.textures.items and the .json file is in assets.MODID.models.item but a game renders a standard 3D block with black and purple checkerboard pattern. My item's class extends Item so I don't understand why is it trying to render a block?
May 27, 201510 yr Author I'm using Intellij IDEA 14.1 my MODID is "NotEnoughPower" and it has some upper-case letters some constants are referenced in the code Reference.MODID = "NotEnoughPower" Textures.COAL_PIECE = "coal_piece" Textures.RESOURCE_PREFIX = Reference.MODID.toLowerCase() + ":"; This is the project Structure http://imgur.com/N3chCP1 init and preInit methods of the main Mod class @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { ConfigHandler.init(event.getSuggestedConfigurationFile()); FMLCommonHandler.instance().bus().register(new ConfigHandler()); ModItems.register_items(); LogHelper.info("Pre Init Complete"); } @Mod.EventHandler public void init(FMLInitializationEvent event) { ModItems.load_textures(); LogHelper.info("Init Complete"); } The ItemNEPWR (all mod items will extend this class) public class ItemNEPWR extends Item { public ItemNEPWR() { super(); setCreativeTab(CreativeTabs.tabMisc); } @Override public String getUnlocalizedName() { return String.format("item.%s%s", Textures.RESOURCE_PREFIX, getUnwrappedUnlocalizedName(super.getUnlocalizedName())); } @Override public String getUnlocalizedName(ItemStack itemStack) { return String.format("item.%s%s", Textures.RESOURCE_PREFIX, getUnwrappedUnlocalizedName(super.getUnlocalizedName())); } private String getUnwrappedUnlocalizedName(String unlocalizedName) { return unlocalizedName.substring(unlocalizedName.indexOf('.') + 1); } } The ModItems class used to register and assign textures to all the items public class ModItems { public static final ItemNEPWR coalPiece = new ItemCoalPiece(); public static void register_items() { GameRegistry.registerItem(coalPiece, Textures.COAL_PIECE); } @SideOnly(Side.CLIENT) public static void load_textures() { load_texture(coalPiece); } private static void load_texture(ItemNEPWR item) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MODID+":"+Textures.COAL_PIECE /*item.getUnlocalizedName().substring(5)*/, "inventory")); } } Since everything else is done in other classes, the Item class itself looks very simple public class ItemCoalPiece extends ItemNEPWR { public ItemCoalPiece() { super(); this.setUnlocalizedName(Textures.COAL_PIECE); } } All the code is available on github: https://github.com/zlotnleo/NotEnoughPower
May 27, 201510 yr http://www.minecraftforge.net/forum/index.php/topic,21354.0.html 3rd paragraph. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
May 27, 201510 yr As diesieben07 said, your ModID must be lowercase. Also, remember that item.getUnlocalizedName() returns item.[the unlocalizedname]. So, Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MODID+":"+itemname, "inventory")); SHOULD LOOK LIKE THIS: Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MODID+":"+ item.getUnlocalizedName().substring(5), "inventory")) If that doesn't work, then something is wrong with your .json file. Sup bruh.
May 28, 201510 yr Author That is not the problem since I override the Item method with my own in ItemNEPWR
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.