package net.tropicraft.client.entity.render;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Vec3;
import org.lwjgl.opengl.GL11;
import CoroUtil.entity.EntityTropicalFishHook;
public class RenderFishHook extends Render {
public RenderFishHook() {
}
@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 new ResourceLocation("textures/particle/particles.png");
}
public void doRenderFish(EntityTropicalFishHook entityfish, double d, double d1, double d2,
float f, float f1) {
GL11.glPushMatrix();
GL11.glTranslatef((float) d, (float) d1, (float) d2);
GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/);
GL11.glScalef(0.5F, 0.5F, 0.5F);
int i = 1;
byte byte0 = 2;
this.bindEntityTexture(entityfish);
//loadTexture("/particles.png");
Tessellator tessellator = Tessellator.instance;
float f2 = (float) (i * 8 + 0) / 128F;
float f3 = (float) (i * 8 + 8) / 128F;
float f4 = (float) (byte0 * 8 + 0) / 128F;
float f5 = (float) (byte0 * 8 + 8) / 128F;
float f6 = 1.0F;
float f7 = 0.5F;
float f8 = 0.5F;
GL11.glRotatef(180F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
tessellator.addVertexWithUV(0.0F - f7, 0.0F - f8, 0.0D, f2, f5);
tessellator.addVertexWithUV(f6 - f7, 0.0F - f8, 0.0D, f3, f5);
tessellator.addVertexWithUV(f6 - f7, 1.0F - f8, 0.0D, f3, f4);
tessellator.addVertexWithUV(0.0F - f7, 1.0F - f8, 0.0D, f2, f4);
tessellator.draw();
GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/);
GL11.glPopMatrix();
if (entityfish.angler != null) {
float f9 = ((entityfish.angler.prevRotationYaw + (entityfish.angler.rotationYaw - entityfish.angler.prevRotationYaw) * f1) * 3.141593F) / 180F;
double d3 = MathHelper.sin(f9);
double d5 = MathHelper.cos(f9);
float f11 = entityfish.angler.getSwingProgress(f1);
float f12 = MathHelper.sin(MathHelper.sqrt_float(f11) * 3.141593F);
Vec3 vec3d = Vec3.createVectorHelper(-0.5D, 0.029999999999999999D, 0.80000000000000004D);
/*
* vec3d.rotateAroundX((-(entityfish.angler.prevRotationPitch +
* (entityfish.angler.rotationPitch -
* entityfish.angler.prevRotationPitch) * f1) * 3.141593F) / 180F);
* vec3d.rotateAroundY((-(entityfish.angler.prevRotationYaw +
* (entityfish.angler.rotationYaw -
* entityfish.angler.prevRotationYaw) * f1) * 3.141593F) / 180F);
* vec3d.rotateAroundY(f12 * 0.5F); vec3d.rotateAroundX(-f12 * 0.7F);
*/
double d7 = entityfish.angler.prevPosX + (entityfish.angler.posX - entityfish.angler.prevPosX) * (double) f1 + vec3d.xCoord;
double d8 = entityfish.angler.prevPosY + (entityfish.angler.posY - entityfish.angler.prevPosY) * (double) f1 + vec3d.yCoord;
double d9 = entityfish.angler.prevPosZ + (entityfish.angler.posZ - entityfish.angler.prevPosZ) * (double) f1 + vec3d.zCoord;
if (renderManager.options.thirdPersonView > 0 || true) {
float f10 = ((entityfish.angler.prevRenderYawOffset + (entityfish.angler.renderYawOffset - entityfish.angler.prevRenderYawOffset) * f1) * 3.141593F) / 180F;
double d4 = MathHelper.sin(f10);
double d6 = MathHelper.cos(f10);
d7 = (entityfish.angler.prevPosX + (entityfish.angler.posX - entityfish.angler.prevPosX) * (double) f1) - d6 * 0.34999999999999998D - d4 * 0.84999999999999998D;
d8 = (entityfish.angler.prevPosY + (entityfish.angler.posY - entityfish.angler.prevPosY) * (double) f1) - 0.45000000000000001D;
d9 = ((entityfish.angler.prevPosZ + (entityfish.angler.posZ - entityfish.angler.prevPosZ) * (double) f1) - d4 * 0.34999999999999998D) + d6 * 0.84999999999999998D;
}
double d10 = entityfish.prevPosX + (entityfish.posX - entityfish.prevPosX) * (double) f1;
double d11 = entityfish.prevPosY + (entityfish.posY - entityfish.prevPosY) * (double) f1 - 1D;
double d12 = entityfish.prevPosZ + (entityfish.posZ - entityfish.prevPosZ) * (double) f1;
double d13 = (float) (d7 - d10);
double d14 = (float) (d8 - d11);
double d15 = (float) (d9 - d12);
GL11.glDisable(3553 /*GL_TEXTURE_2D*/);
GL11.glDisable(2896 /*GL_LIGHTING*/);
tessellator.startDrawing(3);
tessellator.setColorOpaque_I(0xAAAAAA);
int j = 16;
for (int k = 0; k <= j; k++) {
float f13 = (float) k / (float) j;
tessellator.addVertex(d + d13 * (double) f13, d1 + d14 * (double) (f13 * f13 + f13) * 0.5D + 0.25D, d2 + d15 * (double) f13);
}
tessellator.draw();
GL11.glEnable(2896 /*GL_LIGHTING*/);
GL11.glEnable(3553 /*GL_TEXTURE_2D*/);
}
}
@Override
public void doRender(Entity entity, double d, double d1, double d2,
float f, float f1) {
doRenderFish((EntityTropicalFishHook) entity, d, d1, d2, f, f1);
}
}