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 /** 026 * Renders this snowman's pumpkin. 027 */ 028 protected void renderSnowmanPumpkin(EntitySnowman par1EntitySnowman, float par2) 029 { 030 super.renderEquippedItems(par1EntitySnowman, par2); 031 ItemStack var3 = new ItemStack(Block.pumpkin, 1); 032 033 if (var3 != null && var3.getItem() instanceof ItemBlock) 034 { 035 GL11.glPushMatrix(); 036 this.snowmanModel.head.postRender(0.0625F); 037 038 IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(var3, EQUIPPED); 039 boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, var3, BLOCK_3D)); 040 041 if (is3D || RenderBlocks.renderItemIn3d(Block.blocksList[var3.itemID].getRenderType())) 042 { 043 float var4 = 0.625F; 044 GL11.glTranslatef(0.0F, -0.34375F, 0.0F); 045 GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); 046 GL11.glScalef(var4, -var4, var4); 047 } 048 049 this.renderManager.itemRenderer.renderItem(par1EntitySnowman, var3, 0); 050 GL11.glPopMatrix(); 051 } 052 } 053 054 protected void renderEquippedItems(EntityLiving par1EntityLiving, float par2) 055 { 056 this.renderSnowmanPumpkin((EntitySnowman)par1EntityLiving, par2); 057 } 058 }