package zmaster587.advancedRocketry.client.render;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ResourceLocation;
public class RenderLaser extends Render {
private static final ResourceLocation flare = new ResourceLocation("advancedrocketry", "textures/entity/Flare.png");
float color[];
float flareColor[];
//float flareColo
double size;
public RenderLaser(double size, float[] flarecolor, float[] color) {
this.size = size;
this.flareColor = flarecolor;
this.color = color;
}
@Override
public void doRender(Entity entity, double x, double y, double z,
float f, float f1) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
Tessellator tessellator = Tessellator.instance;
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_FOG);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDepthMask(false);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
Minecraft.getMinecraft().renderEngine.bindTexture(flare);
//bindTexture(flare);
tessellator.startDrawing(7);
tessellator.setColorRGBA_F(flareColor[0],flareColor[1],flareColor[2],flareColor[3]);
for(int i = 0; i < 4; i++) {
tessellator.addVertexWithUV(-(i*6) - x, -y + 200, (i*6) - z, 0,1);
tessellator.addVertexWithUV(-(i*6) - x, -y + 200, -(i*6) - z,0,0);
tessellator.addVertexWithUV((i*6) - x, -y + 200, -(i*6) - z,1,0);
tessellator.addVertexWithUV((i*6) - x, -y + 200, (i*6) - z,1,1);
}
tessellator.draw();
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
tessellator.startDrawing(7);
tessellator.setColorRGBA_F(color[0], color[1], color[2], color[3]);//0.9F, 0.2F, 0.3F, 0.5F);
for(float radius = 0.25F; radius < size; radius += .25F) {
for(double i = 0; i < 2*Math.PI; i += Math.PI) {
tessellator.addVertex(- x , -y + 200, - z);
tessellator.addVertex(- x, -y + 200, - z);
tessellator.addVertex(- (radius* Math.cos(i)) + 0.5F, 0,- (radius* Math.sin(i)) + 0.5F);
tessellator.addVertex(+ (radius* Math.sin(i)) + 0.5F, 0, (radius* Math.cos(i)) + 0.5F);
}
for(double i = 0; i < 2*Math.PI; i += Math.PI) {
tessellator.addVertex(- x, -y + 200,- z);
tessellator.addVertex(- x, -y + 200, - z);
tessellator.addVertex(+ (radius* Math.sin(i)) + 0.5F, 0, -(radius* Math.cos(i)) + 0.5F);
tessellator.addVertex(- (radius* Math.cos(i)) + 0.5F, 0,(radius* Math.sin(i)) + 0.5F);
}
}
tessellator.draw();
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_FOG);
GL11.glDepthMask(true);
GL11.glPopMatrix();
}
@Override
public void doRenderShadowAndFire(Entity p_76979_1_, double p_76979_2_,
double p_76979_4_, double p_76979_6_, float p_76979_8_,
float p_76979_9_) {
//Do not render shadow or fire
}
@Override
protected ResourceLocation getEntityTexture(Entity entity) {
return null;
}
}