Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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?

  • 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

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/

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.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.