I am making a pipe at the moment and there is a mistake that I can't find. I am working on the connections to other pipes. When I place 2 pipes and I look at one of the two pipes one of the pipes will be invisible and an virtual pipe is spawning in the air above me. Here the Code:
package me.darki.ChemMix.renderer;
import org.lwjgl.opengl.GL11;
import me.darki.ChemMix.ChemMix;
import me.darki.ChemMix.TileEntity.TileEntityCable;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityCableRenderer extends TileEntitySpecialRenderer{
ResourceLocation tex = new ResourceLocation("chemmix", "textures/models/cable.png");
static boolean drawInside = true;
static float pixel = 1F/16F;
static float texpixel = 1F/32F;
public void renderTileEntityAt(TileEntity t, double translationX, double translationY, double translationZ, float f) {
GL11.glTranslated(translationX, translationY, translationZ);
GL11.glDisable(GL11.GL_LIGHTING);
this.bindTexture(tex);
{
drawCore(t);
drawConnector(ForgeDirection.NORTH);
drawConnector(ForgeDirection.EAST);
drawConnector(ForgeDirection.WEST);
drawConnector(ForgeDirection.SOUTH);
drawConnector(ForgeDirection.UP);
drawConnector(ForgeDirection.DOWN);
/**TileEntityCable cab = (TileEntityCable) t;
for(int i = 0; i < cab.connections.length; i++){
if(cab.connections[i] != null){
drawConnector(cab.connections[i]);
}
}**/
}
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glTranslated(-translationX, -translationY, -translationZ);
}
public static void drawConnector(ForgeDirection d){
Tessellator tess = Tessellator.instance;
tess.startDrawingQuads();
{
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
if(d.equals(ForgeDirection.UP)){
}else if(d.equals(ForgeDirection.DOWN)){
GL11.glRotatef(180, 1, 0, 0);
}else if(d.equals(ForgeDirection.NORTH)){
GL11.glRotatef(90, 1, 0, 0);
}else if(d.equals(ForgeDirection.SOUTH)){
GL11.glRotatef(270, 1, 0, 0);
}else if(d.equals(ForgeDirection.WEST)){
GL11.glRotatef(90, 0, 0, 1);
}else if(d.equals(ForgeDirection.EAST)){
GL11.glRotatef(270, 0, 0, 1);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1, 1-11*pixel/2, 10*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1, 1-11*pixel/2, 10*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1, 11*pixel/2, 10*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1, 11*pixel/2, 10*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1, 11*pixel/2, 10*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1, 1-11*pixel/2, 10*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1, 1-11*pixel/2, 10*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1, 11*pixel/2, 10*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
}
tess.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
if(d.equals(ForgeDirection.UP)){
}else if(d.equals(ForgeDirection.DOWN)){
GL11.glRotatef(-180, 1, 0, 0);
}else if(d.equals(ForgeDirection.NORTH)){
GL11.glRotatef(-90, 1, 0, 0);
}else if(d.equals(ForgeDirection.SOUTH)){
GL11.glRotatef(-270, 1, 0, 0);
}else if(d.equals(ForgeDirection.WEST)){
GL11.glRotatef(-90, 0, 0, 1);
}else if(d.equals(ForgeDirection.EAST)){
GL11.glRotatef(-270, 1, 0, 0);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
}
public static void drawCore(TileEntity t){
Tessellator tess = Tessellator.instance;
tess.startDrawingQuads();
{
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
if(drawInside){
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(11*pixel/2, 1-11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 1-11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 1-11*pixel/2, 0*texpixel, 5*texpixel);
tess.addVertexWithUV(1-11*pixel/2, 11*pixel/2, 11*pixel/2, 0*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 11*pixel/2, 5*texpixel, 0*texpixel);
tess.addVertexWithUV(11*pixel/2, 11*pixel/2, 1-11*pixel/2, 5*texpixel, 5*texpixel);
}
}
tess.draw();
}
}