Here is the code I used for my Souls Mod. It is called in renderItem(ItemRenderType type, ItemStack item, Object... data)
if (data[1] != null && data[1] instanceof EntityPlayer) {
if (!((EntityPlayer) data[1] == Minecraft.getMinecraft().renderViewEntity
&& Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && !((Minecraft
.getMinecraft().currentScreen instanceof GuiInventory || Minecraft
.getMinecraft().currentScreen instanceof GuiContainerCreative) && RenderManager.instance.playerViewY == 180.0F))) {
GL11.glRotatef(-90, 0, 0, 1);
GL11.glTranslatef(-1.05f, 0.3f, -0.1f);
} else {
GL11.glTranslatef(1f, 2f, 0f);
GL11.glRotatef(190, 1, 0, 0);
}
}
batModel.render((Entity) data[1], 0, 0, 0, 0, 0, 0.0625f);
And I use this code to check whether or not the 3D item should be rendered.
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch (type) {
case EQUIPPED:
return true;
default:
return false;
}
}
If you wish, I can release my full ItemRenderClub.java. Just ask.