Jump to content

[1.8] Item texture not rendering


zlotnleo

Recommended Posts

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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/

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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