День добрый. Хочу изменить модель предмета, на свою модель в формате .obj (Wavefront).
В главном классе регистрирую рендер
Код CustomItemRenderer.java
Проблема в том, что модель не отображается будучи выброшена на землю и от первого лица. Без понятия как исправить.
В главном классе регистрирую рендер
Код:
MinecraftForgeClient.registerItemRenderer(this.someItem, new CustomItemRenderer());
Код:
public class CustomItemRenderer implements IItemRenderer {
private IModelCustom model;
public CustomItemRenderer(){
ResourceLocation modelres = new ResourceLocation("xmod:object.obj");
model = AdvancedModelLoader.loadModel(modelres);
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch(type)
{
case EQUIPPED: return true;
default: return false;
}
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
{
return false;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
{
switch(type)
{
case EQUIPPED:
{
GL11.glPushMatrix();
boolean isFirstPerson = false;
if(data[1] !=null & data[1] instanceof EntityPlayer)
{
ResourceLocation textureimg = new ResourceLocation("xmod:textures/items/object.png");
Minecraft.getMinecraft().renderEngine.bindTexture(textureimg);
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.glTranslatef(0.25F, 1.0F, 0.0F);
GL11.glRotatef(40F, 1F, 0F, 0F);
GL11.glRotatef(40F, -10F, 1F, 0F);
GL11.glRotatef(-330F, 0F, 0F, 1F);
}
else
{
isFirstPerson = true;
GL11.glTranslatef(0.7F, 1.2F, -0.0F);
GL11.glRotatef(150F, 1F, 0F, 0F);
GL11.glRotatef(80F, -1F, 1F, 0F);
GL11.glRotatef(-90F, 1F, 0F, 1F);
}
GL11.glScalef(0.35F, 0.35F, 0.35F);
model.renderAll();
GL11.glPopMatrix();
}
}
default:
break;
}
}
}