private void render(Tessellator tessellator, float pTicks) {
float arX = ActiveRenderInfo.rotationX;
float arXZ = ActiveRenderInfo.rotationXZ;
float arZ = ActiveRenderInfo.rotationZ;
float arYZ = ActiveRenderInfo.rotationYZ;
float arXY = ActiveRenderInfo.rotationXY;
GL11.glPushMatrix();
GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
float agescale = (float) (ClientHandler.ticks % 800) / 400F;
if(agescale >= 1.0F) agescale = 2 - agescale;
float size = 0.2F + 0.1F * agescale;
if(parent != null) {
size += size * (((float) parent.getSizeStage()) * 0.04F);
}
float anglePerc = (float) (ClientHandler.ticks % 300) / 300F;
float angle = RAD - RAD * anglePerc;
Vector3 iV = MiscUtils.interpolateEntityPosition(Minecraft.getMinecraft().renderViewEntity, pTicks);
if(parent != null && parent.getSizeStage() > 4) {
float mult = 0.001F * (parent.getSizeStage() - 4F);
Vector3 shake = new Vector3(
RAND.nextFloat() * mult * (RAND.nextBoolean() ? 1 : -1),
RAND.nextFloat() * mult * (RAND.nextBoolean() ? 1 : -1),
RAND.nextFloat() * mult * (RAND.nextBoolean() ? 1 : -1));
iV.add(shake);
}
GL11.glTranslated(-iV.getX(), -iV.getY(), -iV.getZ());
UtilsFX.bindTexture(TC_VORTEX_TEXTURE);
tessellator.startDrawingQuads();
tessellator.setBrightness(220);
tessellator.setColorRGBA_F(1F, 1F, 1F, 1F);
Vec3 v1 = Vec3.createVectorHelper(-arX * size - arYZ * size, -arXZ * size, -arZ * size - arXY * size);
Vec3 v2 = Vec3.createVectorHelper(-arX * size + arYZ * size, arXZ * size, -arZ * size + arXY * size);
Vec3 v3 = Vec3.createVectorHelper(arX * size + arYZ * size, arXZ * size, arZ * size + arXY * size);
Vec3 v4 = Vec3.createVectorHelper(arX * size - arYZ * size, -arXZ * size, arZ * size - arXY * size);
if (angle != 0.0F) {
Vec3 pvec = Vec3.createVectorHelper(iV.getX(), iV.getY(), iV.getZ());
Vec3 tvec = Vec3.createVectorHelper(x, y, z);
Vec3 qvec = pvec.subtract(tvec).normalize();
QuadHelper.setAxis(qvec, angle).rotate(v1);
QuadHelper.setAxis(qvec, angle).rotate(v2);
QuadHelper.setAxis(qvec, angle).rotate(v3);
QuadHelper.setAxis(qvec, angle).rotate(v4);
}
tessellator.setNormal(0.0F, 0.0F, -1.0F);
tessellator.addVertexWithUV(x + v1.xCoord, y + v1.yCoord, z + v1.zCoord, 0, 1);
tessellator.addVertexWithUV(x + v2.xCoord, y + v2.yCoord, z + v2.zCoord, 1, 1);
tessellator.addVertexWithUV(x + v3.xCoord, y + v3.yCoord, z + v3.zCoord, 1, 0);
tessellator.addVertexWithUV(x + v4.xCoord, y + v4.yCoord, z + v4.zCoord, 0, 0);
tessellator.draw();
GL11.glDisable(GL11.GL_BLEND);
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
GL11.glPopMatrix();
}
FXVortex.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:Gadomancy
作者:
评论列表
文章目录