@Override protected void rotateCorpse( EntityDragonMinion par1EntityDragonMinion, float par2, float par3, float par4) { float f3 = (float) par1EntityDragonMinion.getMovementOffsets(7, par4)[0]; float f4 = (float) (par1EntityDragonMinion.getMovementOffsets(5, par4)[1] - par1EntityDragonMinion.getMovementOffsets(10, par4)[1]); GL11.glRotatef(-f3, 0.0F, 1.0F, 0.0F); GL11.glRotatef(f4 * 10.0F, 1.0F, 0.0F, 0.0F); GL11.glTranslatef(0.0F, 0.0F, 1.0F); if (par1EntityDragonMinion.deathTime > 0) { float f5 = (par1EntityDragonMinion.deathTime + par4 - 1.0F) / 20.0F * 1.6F; f5 = MathHelper.sqrt_float(f5); if (f5 > 1.0F) f5 = 1.0F; GL11.glRotatef(f5 * getDeathMaxRotation(par1EntityDragonMinion), 0.0F, 0.0F, 1.0F); } }
/** Renders the desired {@code T} type Entity. */ public void doRender( EntityFishHook entity, double x, double y, double z, float entityYaw, float partialTicks) { GlStateManager.pushMatrix(); GlStateManager.translate((float) x, (float) y, (float) z); GlStateManager.enableRescaleNormal(); GlStateManager.scale(0.5F, 0.5F, 0.5F); this.bindEntityTexture(entity); Tessellator tessellator = Tessellator.getInstance(); VertexBuffer vertexbuffer = tessellator.getBuffer(); int i = 1; int j = 2; float f = 0.0625F; float f1 = 0.125F; float f2 = 0.125F; float f3 = 0.1875F; float f4 = 1.0F; float f5 = 0.5F; float f6 = 0.5F; GlStateManager.rotate(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GlStateManager.rotate( (float) (this.renderManager.options.thirdPersonView == 2 ? -1 : 1) * -this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); if (this.renderOutlines) { GlStateManager.enableColorMaterial(); GlStateManager.enableOutlineMode(this.getTeamColor(entity)); } vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX_NORMAL); vertexbuffer.pos(-0.5D, -0.5D, 0.0D).tex(0.0625D, 0.1875D).normal(0.0F, 1.0F, 0.0F).endVertex(); vertexbuffer.pos(0.5D, -0.5D, 0.0D).tex(0.125D, 0.1875D).normal(0.0F, 1.0F, 0.0F).endVertex(); vertexbuffer.pos(0.5D, 0.5D, 0.0D).tex(0.125D, 0.125D).normal(0.0F, 1.0F, 0.0F).endVertex(); vertexbuffer.pos(-0.5D, 0.5D, 0.0D).tex(0.0625D, 0.125D).normal(0.0F, 1.0F, 0.0F).endVertex(); tessellator.draw(); if (this.renderOutlines) { GlStateManager.disableOutlineMode(); GlStateManager.disableColorMaterial(); } GlStateManager.disableRescaleNormal(); GlStateManager.popMatrix(); if (entity.angler != null && !this.renderOutlines) { int k = entity.angler.getPrimaryHand() == EnumHandSide.RIGHT ? 1 : -1; float f7 = entity.angler.getSwingProgress(partialTicks); float f8 = MathHelper.sin(MathHelper.sqrt_float(f7) * (float) Math.PI); float f9 = (entity.angler.prevRenderYawOffset + (entity.angler.renderYawOffset - entity.angler.prevRenderYawOffset) * partialTicks) * 0.017453292F; double d0 = (double) MathHelper.sin(f9); double d1 = (double) MathHelper.cos(f9); double d2 = (double) k * 0.35D; double d3 = 0.8D; double d4; double d5; double d6; double d7; if ((this.renderManager.options == null || this.renderManager.options.thirdPersonView <= 0) && entity.angler == Minecraft.getMinecraft().thePlayer) { Vec3d vec3d = new Vec3d((double) k * -0.36D, -0.05D, 0.4D); vec3d = vec3d.rotatePitch( -(entity.angler.prevRotationPitch + (entity.angler.rotationPitch - entity.angler.prevRotationPitch) * partialTicks) * 0.017453292F); vec3d = vec3d.rotateYaw( -(entity.angler.prevRotationYaw + (entity.angler.rotationYaw - entity.angler.prevRotationYaw) * partialTicks) * 0.017453292F); vec3d = vec3d.rotateYaw(f8 * 0.5F); vec3d = vec3d.rotatePitch(-f8 * 0.7F); d4 = entity.angler.prevPosX + (entity.angler.posX - entity.angler.prevPosX) * (double) partialTicks + vec3d.xCoord; d5 = entity.angler.prevPosY + (entity.angler.posY - entity.angler.prevPosY) * (double) partialTicks + vec3d.yCoord; d6 = entity.angler.prevPosZ + (entity.angler.posZ - entity.angler.prevPosZ) * (double) partialTicks + vec3d.zCoord; d7 = (double) entity.angler.getEyeHeight(); } else { d4 = entity.angler.prevPosX + (entity.angler.posX - entity.angler.prevPosX) * (double) partialTicks - d1 * d2 - d0 * 0.8D; d5 = entity.angler.prevPosY + (double) entity.angler.getEyeHeight() + (entity.angler.posY - entity.angler.prevPosY) * (double) partialTicks - 0.45D; d6 = entity.angler.prevPosZ + (entity.angler.posZ - entity.angler.prevPosZ) * (double) partialTicks - d0 * d2 + d1 * 0.8D; d7 = entity.angler.isSneaking() ? -0.1875D : 0.0D; } double d13 = entity.prevPosX + (entity.posX - entity.prevPosX) * (double) partialTicks; double d8 = entity.prevPosY + (entity.posY - entity.prevPosY) * (double) partialTicks + 0.25D; double d9 = entity.prevPosZ + (entity.posZ - entity.prevPosZ) * (double) partialTicks; double d10 = (double) ((float) (d4 - d13)); double d11 = (double) ((float) (d5 - d8)) + d7; double d12 = (double) ((float) (d6 - d9)); GlStateManager.disableTexture2D(); GlStateManager.disableLighting(); vertexbuffer.begin(3, DefaultVertexFormats.POSITION_COLOR); int l = 16; for (int i1 = 0; i1 <= 16; ++i1) { float f10 = (float) i1 / 16.0F; vertexbuffer .pos( x + d10 * (double) f10, y + d11 * (double) (f10 * f10 + f10) * 0.5D + 0.25D, z + d12 * (double) f10) .color(0, 0, 0, 255) .endVertex(); } tessellator.draw(); GlStateManager.enableLighting(); GlStateManager.enableTexture2D(); super.doRender(entity, x, y, z, entityYaw, partialTicks); } }