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 007 @SideOnly(Side.CLIENT) 008 public class RenderVillager extends RenderLiving 009 { 010 /** Model of the villager. */ 011 protected ModelVillager villagerModel; 012 013 public RenderVillager() 014 { 015 super(new ModelVillager(0.0F), 0.5F); 016 this.villagerModel = (ModelVillager)this.mainModel; 017 } 018 019 /** 020 * Determines wether Villager Render pass or not. 021 */ 022 protected int shouldVillagerRenderPass(EntityVillager par1EntityVillager, int par2, float par3) 023 { 024 return -1; 025 } 026 027 public void renderVillager(EntityVillager par1EntityVillager, double par2, double par4, double par6, float par8, float par9) 028 { 029 super.doRenderLiving(par1EntityVillager, par2, par4, par6, par8, par9); 030 } 031 032 /** 033 * Passes the Villager special render. 034 */ 035 protected void passVillagerSpecialRender(EntityVillager par1EntityVillager, double par2, double par4, double par6) {} 036 037 protected void renderVillagerEquipedItems(EntityVillager par1EntityVillager, float par2) 038 { 039 super.renderEquippedItems(par1EntityVillager, par2); 040 } 041 042 protected void preRenderVillager(EntityVillager par1EntityVillager, float par2) 043 { 044 float var3 = 0.9375F; 045 046 if (par1EntityVillager.getGrowingAge() < 0) 047 { 048 var3 = (float)((double)var3 * 0.5D); 049 this.shadowSize = 0.25F; 050 } 051 else 052 { 053 this.shadowSize = 0.5F; 054 } 055 056 GL11.glScalef(var3, var3, var3); 057 } 058 059 /** 060 * Passes the specialRender and renders it 061 */ 062 protected void passSpecialRender(EntityLiving par1EntityLiving, double par2, double par4, double par6) 063 { 064 this.passVillagerSpecialRender((EntityVillager)par1EntityLiving, par2, par4, par6); 065 } 066 067 /** 068 * Allows the render to do any OpenGL state modifications necessary before the model is rendered. Args: 069 * entityLiving, partialTickTime 070 */ 071 protected void preRenderCallback(EntityLiving par1EntityLiving, float par2) 072 { 073 this.preRenderVillager((EntityVillager)par1EntityLiving, par2); 074 } 075 076 /** 077 * Queries whether should render the specified pass or not. 078 */ 079 protected int shouldRenderPass(EntityLiving par1EntityLiving, int par2, float par3) 080 { 081 return this.shouldVillagerRenderPass((EntityVillager)par1EntityLiving, par2, par3); 082 } 083 084 protected void renderEquippedItems(EntityLiving par1EntityLiving, float par2) 085 { 086 this.renderVillagerEquipedItems((EntityVillager)par1EntityLiving, par2); 087 } 088 089 public void doRenderLiving(EntityLiving par1EntityLiving, double par2, double par4, double par6, float par8, float par9) 090 { 091 this.renderVillager((EntityVillager)par1EntityLiving, par2, par4, par6, par8, par9); 092 } 093 094 /** 095 * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then 096 * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic 097 * (Render<T extends Entity) and this method has signature public void doRender(T entity, double d, double d1, 098 * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that. 099 */ 100 public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) 101 { 102 this.renderVillager((EntityVillager)par1Entity, par2, par4, par6, par8, par9); 103 } 104 }