package drzhark.mocreatures.client.renderer.entity; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.EntityLiving; import org.lwjgl.opengl.GL11; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import drzhark.mocreatures.entity.passive.MoCEntityDeer; @SideOnly(Side.CLIENT) public class MoCRenderDeer extends RenderLiving { public MoCRenderDeer(ModelBase modelbase, float f) { super(modelbase, f); } @Override public void doRenderLiving(EntityLiving entityliving, double d, double d1, double d2, float f, float f1) { MoCEntityDeer entitydeer = (MoCEntityDeer) entityliving; super.doRenderLiving(entitydeer, d, d1, d2, f, f1); } @Override protected float handleRotationFloat(EntityLiving entityliving, float f) { MoCEntityDeer entitydeer = (MoCEntityDeer) entityliving; stretch(entitydeer); return entityliving.ticksExisted + f; } @Override protected void preRenderCallback(EntityLiving entityliving, float f) { rotateDeer((MoCEntityDeer) entityliving); } protected void rotateDeer(MoCEntityDeer entitydeer) { if (!entitydeer.onGround && (entitydeer.getMoveSpeed() > 2.0F)) { if (entitydeer.motionY > 0.5D) { GL11.glRotatef(20F, -1F, 0.0F, 0.0F); } else if (entitydeer.motionY < -0.5D) { GL11.glRotatef(-20F, -1F, 0.0F, 0.0F); } else { GL11.glRotatef((float) (entitydeer.motionY * 40D), -1F, 0.0F, 0.0F); } } } protected void stretch(MoCEntityDeer entitydeer) { float f = entitydeer.getEdad() * 0.01F; float f1 = 0.0F; if (entitydeer.getType() == 1) { f1 = 1.7F; } else if (entitydeer.getType() == 2) { f1 = 1.3F; } else { f1 = f; } if (entitydeer.getIsAdult()) { f = 1.0F; } GL11.glScalef(f1, f1, f1); } }