001    package net.minecraft.src;
002    
003    import net.minecraftforge.client.IItemRenderer;
004    import static net.minecraftforge.client.IItemRenderer.ItemRenderType.*;
005    import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.*;
006    import net.minecraftforge.client.MinecraftForgeClient;
007    
008    import cpw.mods.fml.common.Side;
009    import cpw.mods.fml.common.asm.SideOnly;
010    import org.lwjgl.opengl.GL11;
011    
012    @SideOnly(Side.CLIENT)
013    public class RenderSnowMan extends RenderLiving
014    {
015        /** A reference to the Snowman model in RenderSnowMan. */
016        private ModelSnowMan snowmanModel;
017    
018        public RenderSnowMan()
019        {
020            super(new ModelSnowMan(), 0.5F);
021            this.snowmanModel = (ModelSnowMan)super.mainModel;
022            this.setRenderPassModel(this.snowmanModel);
023        }
024    
025        protected void func_77093_a(EntitySnowman par1EntitySnowman, float par2)
026        {
027            super.renderEquippedItems(par1EntitySnowman, par2);
028            ItemStack var3 = new ItemStack(Block.pumpkin, 1);
029    
030            if (var3 != null && var3.getItem() instanceof ItemBlock)
031            {
032                GL11.glPushMatrix();
033                this.snowmanModel.field_78195_c.postRender(0.0625F);
034    
035                IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var3, EQUIPPED);
036                boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var3, BLOCK_3D));
037    
038                if (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var3.itemID].getRenderType()))
039                {
040                    float var4 = 0.625F;
041                    GL11.glTranslatef(0.0F, -0.34375F, 0.0F);
042                    GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
043                    GL11.glScalef(var4, -var4, var4);
044                }
045    
046                this.renderManager.itemRenderer.renderItem(par1EntitySnowman, var3, 0);
047                GL11.glPopMatrix();
048            }
049        }
050    
051        protected void renderEquippedItems(EntityLiving par1EntityLiving, float par2)
052        {
053            this.func_77093_a((EntitySnowman)par1EntityLiving, par2);
054        }
055    }