Рендринг от 1 лица

Проблема с рендером от 1 лица предмета не видно(и руки тоже) от 3 появляется 2 модели.



package net.nukacraft.src;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainerCreative;
import net.minecraft.client.gui.inventory.GuiInventory;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;

import org.lwjgl.opengl.GL11;








public class Render3DItem implements IItemRenderer
{
private ModelItemGun model;

private static final ResourceLocation textures = new ResourceLocation("nukacraft", "textures/models/Gun.png");

public  Render3DItem(){

model = new ModelItemGun();

}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {

switch(type)
{
case EQUIPPED:return true;
case EQUIPPED_FIRST_PERSON: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();
GL11.glScalef(1.4F, 1.0F, 1.4F);
this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL11.glTranslatef(1F, 1F, 1F);
GL11.glPopMatrix();

}

case EQUIPPED_FIRST_PERSON:{

       GL11.glPushMatrix();
            GL11.glScalef(1.4F, 1.0F, 1.4F);

            
            boolean isFirstPerson = true;
            
            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.glTranslatef(1.5F, 0.5F, 0.5F);
                    }
                    else
                    {
                            isFirstPerson = false;
                           
                           
                           
                    }
                    }
                    else   
                    {
                    GL11.glTranslatef(8.5F, 0.5F, 0.5F);
                   
                   
                    } 
            
            
            this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL11.glPopMatrix();

}
default:
break;
}

}}
 
Сначала EQUIPPED_FIRST_PERSON, потом break и просто EQUIPPED.
[merge_posts_bbcode]Добавлено: 31.03.2015 19:53:53[/merge_posts_bbcode]

Дело в том, что и EQUIPPED, и  EQUIPPED_FIRST_PERSON равны true от первого лица. То есть надо сначала проверить, первое ли лицо, если нет, значит третье, и выполнять уже EQUIPPED.
 
[font=Verdana, Helvetica, Arial, sans-serif] if(data[1] != null && data[1] instanceof EntityPlayer)[/font]
[font=Verdana, Helvetica, Arial, sans-serif]                    {[/font]
[font=Verdana, Helvetica, Arial, sans-serif]                    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)))[/font]


[font=Verdana, Helvetica, Arial, sans-serif]Куска кода дебильнее не нашёл?[/font]
 
Crowbar написал(а):
Сначала EQUIPPED_FIRST_PERSON, потом break и просто EQUIPPED.
[merge_posts_bbcode]Добавлено: 31.03.2015 19:53:53[/merge_posts_bbcode]

Дело в том, что и EQUIPPED, и  EQUIPPED_FIRST_PERSON равны true от первого лица. То есть надо сначала проверить, первое ли лицо, если нет, значит третье, и выполнять уже EQUIPPED.
Не совсем понял можешь кодом объяснить?
[merge_posts_bbcode]Добавлено: 31.03.2015 19:24:35[/merge_posts_bbcode]

YouUBegammer написал(а):
Crowbar написал(а):
Сначала EQUIPPED_FIRST_PERSON, потом break и просто EQUIPPED.
[merge_posts_bbcode]Добавлено: 31.03.2015 19:53:53[/merge_posts_bbcode]

Дело в том, что и EQUIPPED, и  EQUIPPED_FIRST_PERSON равны true от первого лица. То есть надо сначала проверить, первое ли лицо, если нет, значит третье, и выполнять уже EQUIPPED.
Не совсем понял можешь кодом объяснить?
Так нет ? @Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
switch(type){

case EQUIPPED_FIRST_PERSON:{

       GL11.glPushMatrix();
            GL11.glScalef(1.4F, 1.0F, 1.4F);

            
            boolean isFirstPerson = true;
            
            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.glTranslatef(1.5F, 0.5F, 0.5F);
                    }
                    else
                    {
                            isFirstPerson = false;
                           
                           
                           
                    }
                    }
                    else   
                    {
                    GL11.glTranslatef(8.5F, 0.5F, 0.5F);
                   
                   
                    } 
            
            
            this.model.render((EntityPlayer)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL11.glPopMatrix();
}
break; 
case EQUIPPED:{
GL11.glPushMatrix();
GL11.glScalef(1.4F, 1.0F, 1.4F);
this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL11.glTranslatef(1F, 1F, 1F);
GL11.glPopMatrix();


}
default:
 


}

}


}

[merge_posts_bbcode]Добавлено: 31.03.2015 19:27:26[/merge_posts_bbcode]

Да все правильно можно закрывать
 
[font=Verdana, Helvetica, Arial, sans-serif]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)))[/font]
[font=Verdana, Helvetica, Arial, sans-serif]Зачем это?[/font]
 
Назад
Сверху