- 129
- 0
Проблема с рендером от 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;
}
}}
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;
}
}}