Posted September 29, 20177 yr And me again. I am trying to render a frame around an entity, but it will not do it. This is the way i try it in the renderer of the entity. Spoiler public void doRender(EntityWorker entity, double x, double y, double z, float entityYaw, float partialTicks) { this.swapArmor(entity); super.doRender(entity, x, y, z, entityYaw, partialTicks); renderWireFrame(entity); } public void renderWireFrame(EntityWorker entity) { GL11.glPushAttrib(GL11.GL_ENABLE_BIT); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(0.0F, 0.0F, 0.0F, 0.4F); GL11.glLineWidth(2.0F); GL11.glDisable(GL11.GL_TEXTURE_2D); double xa = entity.posX - 0.5D; double xb = entity.posX + 0.5D; double ya = entity.posY; double yb = entity.posY + 2; double za = entity.posZ - 0.5D; double zb = entity.posZ + 0.5D; Tessellator tessellator = Tessellator.getInstance(); net.minecraft.client.renderer.VertexBuffer buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_LINE_STRIP, DefaultVertexFormats.POSITION_NORMAL); buffer.pos(xa, ya, za); buffer.pos(xa, yb, za); buffer.pos(xb, yb, za); buffer.pos(xb, ya, za); buffer.pos(xa, ya, za); buffer.pos(xa, ya, zb); buffer.pos(xa, yb, zb); buffer.pos(xb, yb, zb); buffer.pos(xb, ya, zb); buffer.pos(xa, ya, zb); tessellator.draw(); buffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_NORMAL); buffer.pos(xa, ya, za); buffer.pos(xa, ya, zb); buffer.pos(xa, yb, za); buffer.pos(xa, yb, zb); buffer.pos(xb, ya, za); buffer.pos(xb, ya, zb); buffer.pos(xb, yb, za); buffer.pos(xb, yb, zb); tessellator.draw(); GL11.glDepthMask(true); GL11.glPopAttrib(); } Someone an idea, what i am doing wrong? The positions are right, checked it. Edited September 29, 20177 yr by Dustpuppy
September 29, 20177 yr Author I've found the errors. Forgot somethings. But now i have another problem. As soon as i render the frame around the entity, all other entities will be gone, if they are in the same line of view. If i turn around, there will be a point, where they be rendered again. Spoiler public void doRender(EntityWorker entity, double x, double y, double z, float entityYaw, float partialTicks) { this.swapArmor(entity); super.doRender(entity, x, y, z, entityYaw, partialTicks); if(entity.selected && entity.worldObj.isRemote) renderWireFrame(entity, x, y, z); } public void renderWireFrame(EntityWorker entity, double x, double y, double z) { GL11.glPushAttrib(GL11.GL_ENABLE_BIT); GL11.glDepthMask(false); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glTranslated(-entity.posX, -entity.posY, -entity.posZ); Color color = new Color(255, 0, 0, 150); GL11.glColor4d(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()); GL11.glLineWidth(2.0F); double xa = entity.posX - 0.5D + x; double xb = entity.posX + 0.5D + x; double ya = entity.posY + y; double yb = entity.posY + 2 + y; double za = entity.posZ - 0.5D + z; double zb = entity.posZ + 0.5D + z; Tessellator tessellator = Tessellator.getInstance(); net.minecraft.client.renderer.VertexBuffer buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_LINE_STRIP, DefaultVertexFormats.POSITION_NORMAL); buffer.pos(xa, ya, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, yb, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, yb, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, ya, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, ya, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, ya, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, yb, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, yb, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, ya, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, ya, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); tessellator.draw(); buffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_NORMAL); buffer.pos(xa, ya, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, ya, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, yb, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xa, yb, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, ya, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, ya, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, yb, za).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); buffer.pos(xb, yb, zb).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).endVertex(); tessellator.draw(); GL11.glDepthMask(true); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_BLEND); GL11.glPopAttrib(); }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.