protected void renderBeam( Vec3 from, Vec3 to, Vec3 offest, Color color, ResourceLocation texture, float tickness, T viewer) { if (texture != null) Minecraft.getMinecraft().renderEngine.bindTexture(texture); RenderUtils.applyColor(color); glDisable(GL_CULL_FACE); glEnable(GL_BLEND); glBlendFunc(GL_ONE, GL_ONE); glDisable(GL_LIGHTING); double distance = from.subtract(to).lengthVector(); double v = -viewer.worldObj.getWorldTime() * 0.2; glPushMatrix(); glTranslated(from.xCoord, from.yCoord, from.zCoord); glRotated(-viewer.getRotationYawHead(), 0, 1, 0); glRotated(viewer.rotationPitch, 1, 0, 0); glTranslated(offest.xCoord, offest.yCoord, offest.zCoord); Tessellator t = Tessellator.instance; t.startDrawingQuads(); t.addVertexWithUV(tickness, 0, 0, 0, v); t.addVertexWithUV(tickness, 0, distance, 0, v + distance * 1.5); t.addVertexWithUV(-tickness, 0, distance, 1, v + distance * 1.5); t.addVertexWithUV(-tickness, 0, 0, 1, v); t.addVertexWithUV(0, tickness, 0, 0, v); t.addVertexWithUV(0, tickness, distance, 0, v + distance * 1.5); t.addVertexWithUV(0, -tickness, distance, 1, v + distance * 1.5); t.addVertexWithUV(0, -tickness, 0, 1, v); t.draw(); glPopMatrix(); glEnable(GL_CULL_FACE); glDisable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); }
protected boolean renderRaycastedBeam(Vec3 direction, Vec3 offset, T caster) { return renderRaycastedBeam(caster.getPosition(1), direction, offset, caster); }