package net.tropicraft.client.entity.render; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.ResourceLocation; import net.tropicraft.client.entity.model.ModelSeaUrchin; import net.tropicraft.entity.underdasea.EntitySeaUrchin; import net.tropicraft.util.TropicraftUtils; import org.lwjgl.opengl.GL11; public class RenderSeaUrchin extends RenderLiving { /** * Amount freshly hatched sea urchins are scaled down while rendering. */ public static final float BABY_RENDER_SCALE = 0.5f; /** * Amount mature sea urchins are scaled down while rendering. */ public static final float ADULT_RENDER_SCALE = 1f; public RenderSeaUrchin() { super(new ModelSeaUrchin(), 0.5f); } @Override public void doRender(EntityLiving par1EntityLiving, double par2, double par4, double par6, float par8, float par9) { super.doRender(par1EntityLiving, par2, par4, par6, par8, par9); } @Override protected void preRenderCallback(EntityLivingBase par1EntityLiving, float par2) { EntitySeaUrchin urchin = (EntitySeaUrchin) par1EntityLiving; float growthProgress = urchin.getGrowthProgress(); float scale = BABY_RENDER_SCALE + growthProgress*(ADULT_RENDER_SCALE-BABY_RENDER_SCALE); float preScale = 0.5f; GL11.glScalef(preScale*scale, preScale*scale, preScale*scale); } @Override /** * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture. */ protected ResourceLocation getEntityTexture(Entity entity) { return TropicraftUtils.bindTextureEntity("seaurchin"); } }