package com.hbm.render.entity; import org.lwjgl.opengl.GL11; import com.hbm.entity.projectile.EntityLaser; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; public class RenderLaser extends Render { @Override public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { this.doRender((EntityLaser)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); } public void doRender(EntityLaser laser, double x, double y, double z, float p_76986_8_, float p_76986_9_) { EntityPlayer player = null; for(Object p: laser.worldObj.playerEntities) { if(p instanceof EntityPlayer) { EntityPlayer pla = (EntityPlayer)p; if(pla.getUniqueID().toString().equals(laser.getDataWatcher().getWatchableObjectString(20))) { player = pla; break; } } } if(player == null) return; Vec3 vec = Vec3.createVectorHelper(-0.2, -0.1, 0.2); vec.rotateAroundX(-(float)(player.rotationPitch * Math.PI / 180D)); vec.rotateAroundY(-(float)(player.rotationYaw * Math.PI / 180D)); drawPowerLine(x, y, z, x + (player.posX + vec.xCoord - laser.posX), y + (player.posY + vec.yCoord - laser.posY), z + (player.posZ + vec.zCoord - laser.posZ)); } @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return null; } public void drawPowerLine(double x, double y, double z, double a, double b, double c) { GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); Tessellator tessellator = Tessellator.instance; tessellator.startDrawing(5); tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); tessellator.addVertex(x, y + 0.05F, z); tessellator.addVertex(x, y - 0.05F, z); tessellator.addVertex(a, b + 0.05F, c); tessellator.addVertex(a, b - 0.05F, c); tessellator.draw(); tessellator.startDrawing(5); tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); tessellator.addVertex(x + 0.05F, y, z); tessellator.addVertex(x - 0.05F, y, z); tessellator.addVertex(a + 0.05F, b, c); tessellator.addVertex(a - 0.05F, b, c); tessellator.draw(); tessellator.startDrawing(5); tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); tessellator.addVertex(x, y, z + 0.05F); tessellator.addVertex(x, y, z - 0.05F); tessellator.addVertex(a, b, c + 0.05F); tessellator.addVertex(a, b, c - 0.05F); tessellator.draw(); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_CULL_FACE); } }