001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import org.lwjgl.opengl.GL11; 006 import static net.minecraftforge.client.IItemRenderer.ItemRenderType.EQUIPPED; 007 import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.BLOCK_3D; 008 import net.minecraftforge.client.IItemRenderer; 009 import net.minecraftforge.client.MinecraftForgeClient; 010 011 @SideOnly(Side.CLIENT) 012 public class RenderBiped extends RenderLiving 013 { 014 protected ModelBiped modelBipedMain; 015 protected float field_77070_b; 016 017 public RenderBiped(ModelBiped par1ModelBiped, float par2) 018 { 019 this(par1ModelBiped, par2, 1.0F); 020 this.modelBipedMain = par1ModelBiped; 021 } 022 023 public RenderBiped(ModelBiped par1ModelBiped, float par2, float par3) 024 { 025 super(par1ModelBiped, par2); 026 this.modelBipedMain = par1ModelBiped; 027 this.field_77070_b = par3; 028 } 029 030 protected void renderEquippedItems(EntityLiving par1EntityLiving, float par2) 031 { 032 super.renderEquippedItems(par1EntityLiving, par2); 033 ItemStack var3 = par1EntityLiving.getHeldItem(); 034 035 if (var3 != null) 036 { 037 GL11.glPushMatrix(); 038 this.modelBipedMain.bipedRightArm.postRender(0.0625F); 039 GL11.glTranslatef(-0.0625F, 0.4375F, 0.0625F); 040 float var4; 041 042 IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var3, EQUIPPED); 043 boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var3, BLOCK_3D)); 044 045 if (var3.getItem() instanceof ItemBlock && (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var3.itemID].getRenderType()))) 046 { 047 var4 = 0.5F; 048 GL11.glTranslatef(0.0F, 0.1875F, -0.3125F); 049 var4 *= 0.75F; 050 GL11.glRotatef(20.0F, 1.0F, 0.0F, 0.0F); 051 GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); 052 GL11.glScalef(var4, -var4, var4); 053 } 054 else if (var3.itemID == Item.bow.shiftedIndex) 055 { 056 var4 = 0.625F; 057 GL11.glTranslatef(0.0F, 0.125F, 0.3125F); 058 GL11.glRotatef(-20.0F, 0.0F, 1.0F, 0.0F); 059 GL11.glScalef(var4, -var4, var4); 060 GL11.glRotatef(-100.0F, 1.0F, 0.0F, 0.0F); 061 GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); 062 } 063 else if (Item.itemsList[var3.itemID].isFull3D()) 064 { 065 var4 = 0.625F; 066 GL11.glTranslatef(0.0F, 0.1875F, 0.0F); 067 GL11.glScalef(var4, -var4, var4); 068 GL11.glRotatef(-100.0F, 1.0F, 0.0F, 0.0F); 069 GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); 070 } 071 else 072 { 073 var4 = 0.375F; 074 GL11.glTranslatef(0.25F, 0.1875F, -0.1875F); 075 GL11.glScalef(var4, var4, var4); 076 GL11.glRotatef(60.0F, 0.0F, 0.0F, 1.0F); 077 GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F); 078 GL11.glRotatef(20.0F, 0.0F, 0.0F, 1.0F); 079 } 080 081 this.renderManager.itemRenderer.renderItem(par1EntityLiving, var3, 0); 082 083 if (var3.getItem().requiresMultipleRenderPasses()) 084 { 085 for (int x = 1; x < var3.getItem().getRenderPasses(var3.getItemDamage()); x++) 086 { 087 this.renderManager.itemRenderer.renderItem(par1EntityLiving, var3, x); 088 } 089 } 090 091 GL11.glPopMatrix(); 092 } 093 } 094 }