aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/render/ConduitRenderer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/render/ConduitRenderer.java')
-rw-r--r--src/main/java/render/ConduitRenderer.java89
1 files changed, 39 insertions, 50 deletions
diff --git a/src/main/java/render/ConduitRenderer.java b/src/main/java/render/ConduitRenderer.java
index 3f4f97a95c..e1b083004c 100644
--- a/src/main/java/render/ConduitRenderer.java
+++ b/src/main/java/render/ConduitRenderer.java
@@ -27,36 +27,7 @@ public class ConduitRenderer implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
- Tessellator tessellator = Tessellator.instance;
- block.setBlockBoundsForItemRender();
- renderer.setRenderBoundsFromBlock(block);
- GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
- GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, -1.0F, 0.0F);
- renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, 1.0F, 0.0F);
- renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, 0.0F, -1.0F);
- renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, 0.0F, 1.0F);
- renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(-1.0F, 0.0F, 0.0F);
- renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(1.0F, 0.0F, 0.0F);
- renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata));
- tessellator.draw();
- GL11.glTranslatef(0.5F, 0.5F, 0.5F);
+
}
@Override
@@ -68,27 +39,45 @@ public class ConduitRenderer implements ISimpleBlockRenderingHandler {
final float thickness = TE_ItemProxyCable.getThickness();
final float space = (1.0f - thickness) / 2.0f;
-
- if(cable.getConnections() == 63) { // No need to render a center cube if it's hidden anyways
- block.setBlockBounds(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f);
- renderer.setRenderBounds(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f);
- } else if (cable.getConnections() == 0) { // Only center cube required
- block.setBlockBounds(space, space, space, space + thickness, space + thickness, space + thickness);
- renderer.setRenderBounds(space, space, space, space + thickness, space + thickness, space + thickness);
- }
-
- final Tessellator f = Tessellator.instance;
- f.startDrawingQuads();
- IIcon icon = block.getIcon(0, 0);
- // South face
- if(cable.isConnected(ForgeDirection.SOUTH)) {
- f.addVertexWithUV(x + space + thickness, y + space, z + 1, icon.getMaxU(), icon.getMaxV());
- f.addVertexWithUV(x + space + thickness, y + space + thickness, z + 1, icon.getMaxU(), icon.getMinV());
- f.addVertexWithUV(x + space, y + space + thickness, z + 1, icon.getMinU(), icon.getMinV());
- f.addVertexWithUV(x + space, y + space, z + 1, icon.getMinU(), icon.getMaxV());
+
+ float xThickness = thickness;
+ float xOffset = space;
+ float yThickness = thickness;
+ float yOffset = space;
+ float zThickness = thickness;
+ float zOffset = space;
+
+ for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) {
+ if(cable.isConnected(side)) {
+ switch(side) {
+ case DOWN:
+ yOffset = 0.0F;
+ yThickness += space;
+ break;
+ case UP:
+ yThickness += space;
+ break;
+ case NORTH:
+ zOffset = 0.0F;
+ zThickness += space;
+ break;
+ case SOUTH:
+ zThickness += space;
+ break;
+ case WEST:
+ xOffset += 0.0F;
+ xThickness += space;
+ break;
+ case EAST:
+ xThickness += space;
+ break;
+ }
+ }
}
-
- f.draw();
+
+ block.setBlockBounds(xOffset, yOffset, zOffset,
+ xOffset + xThickness, yOffset + yThickness, zOffset + zThickness);
+ renderer.setRenderBoundsFromBlock(block);
}
return false;