Guest User

SimpleBlockRenderingHandler

a guest
Jun 14th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.29 KB | None | 0 0
  1. public class RenderPipe implements ISimpleBlockRenderingHandler
  2. {
  3.     @Override
  4.     public void renderInventoryBlock(Block gBlock, int metadata, int modelId, RenderBlocks renderer)
  5.     {        
  6.         Block block = ((BlockPipe)gBlock).blockTexture != null ? ((BlockPipe)gBlock).blockTexture : gBlock;
  7.  
  8.         renderer.setRenderBounds(0.0F, 0.3F, 0.3F, 1, 0.7F, 0.7F);  
  9.  
  10.         GL11.glPushMatrix();
  11.         IIcon icon = block.getIcon(0, 0);
  12.         Tessellator tessellator = Tessellator.instance;
  13.  
  14.         if(icon == null){icon = Blocks.gold_block.getIcon(0, 0);}
  15.            
  16.         GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
  17.         GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
  18.         tessellator.startDrawingQuads();
  19.         tessellator.setNormal(0.0F, -1.0F, 0.0F);
  20.         renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, icon);
  21.         tessellator.draw();
  22.  
  23.         tessellator.startDrawingQuads();
  24.         tessellator.setNormal(0.0F, 1.0F, 0.0F);
  25.         renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, icon);
  26.         tessellator.draw();
  27.  
  28.         tessellator.startDrawingQuads();
  29.         tessellator.setNormal(0.0F, 0.0F, -1.0F);
  30.         renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, icon);
  31.         tessellator.draw();
  32.         tessellator.startDrawingQuads();
  33.         tessellator.setNormal(0.0F, 0.0F, 1.0F);
  34.         renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, icon);
  35.         tessellator.draw();
  36.         tessellator.startDrawingQuads();
  37.         tessellator.setNormal(-1.0F, 0.0F, 0.0F);
  38.         renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, icon);
  39.         tessellator.draw();
  40.         tessellator.startDrawingQuads();
  41.         tessellator.setNormal(1.0F, 0.0F, 0.0F);
  42.         renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, icon);
  43.         tessellator.draw();
  44.         GL11.glTranslatef(0.5F, 0.5F, 0.5F);
  45.         GL11.glPopMatrix();
  46.     }
  47.  
  48.     @Override
  49.     public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block gBlock, int modelId, RenderBlocks renderer)
  50.     {        
  51.         ClientProxy.reRenderBlocks.blockAccess = renderer.blockAccess;
  52.         Block block = ((BlockPipe)gBlock).blockTexture != null ? ((BlockPipe)gBlock).blockTexture : gBlock;
  53.         Tessellator tess = Tessellator.instance;
  54.        
  55.         boolean[] connects = ((BlockPipe)gBlock).getConnects(world, x, y, z);
  56.  
  57.         float minX = 0.3F;
  58.         float maxX = 0.7F;
  59.         float minY = 0.3F;
  60.         float maxY = 0.7F;
  61.         float minZ = 0.3F;
  62.         float maxZ = 0.7F;
  63.         boolean connX = false;
  64.         boolean connY = false;
  65.         boolean connZ = false;
  66.         ClientProxy.reRenderBlocks.renderAllFaces = true;        
  67.  
  68.         if(connects[0])
  69.         {
  70.             maxX = 1.0F; connX = true;
  71.         }
  72.         if(connects[1])
  73.         {
  74.             minX = 0.0F; connX = true;
  75.         }    
  76.  
  77.         if(connects[2])
  78.         {
  79.             maxY = 1.0F; connY = true;
  80.         }
  81.         if(connects[3])
  82.         {
  83.             minY = 0.0F; connY = true;
  84.         }    
  85.  
  86.         if(connects[4])
  87.         {
  88.             maxZ = 1.0F; connZ = true;
  89.         }
  90.         if(connects[5])
  91.         {
  92.             minZ = 0.0F; connZ = true;
  93.         }
  94.  
  95.         if((connX == true && connY == true) ||
  96.                 (connY == true && connZ == true) ||
  97.                 (connX == true && connZ == true))
  98.         {
  99.             renderer.setRenderBounds(0.3F, 0.3F, 0.3F, 0.7F, 0.7F, 0.7F);      
  100.             RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  101.            
  102.             if(connects[0])
  103.             {
  104.                 renderer.setRenderBounds(0.7F, 0.3F, 0.3F, 1, 0.7F, 0.7F);      
  105.                 RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  106.             }
  107.             if(connects[1])
  108.             {
  109.                 renderer.setRenderBounds(0F, 0.3F, 0.3F, 0.3F, 0.7F, 0.7F);      
  110.                 RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  111.             }
  112.             if(connects[4])
  113.             {
  114.                 renderer.setRenderBounds(0.3F, 0.3F, 0.7F, 0.7F, 0.7F, 1F);      
  115.                 RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  116.             }
  117.             if(connects[5])
  118.             {
  119.                 renderer.setRenderBounds(0.3F, 0.3F, 0F, 0.7F, 0.7F, 0.3F);      
  120.                 RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  121.             }
  122.             if(connects[2])
  123.             {
  124.                 renderer.setRenderBounds(0.3F, 0.7F, 0.3F, 0.7F, 1F, 0.7F);      
  125.                 RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  126.             }
  127.             if(connects[3])
  128.             {
  129.                 renderer.setRenderBounds(0.3F, 0F, 0.3F, 0.7F, 0.3F, 0.7F);      
  130.                 RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  131.             }
  132.         }
  133.         else
  134.         {
  135.             renderer.setRenderBounds(minX, minY, minZ, maxX, maxY, maxZ);      
  136.             RenderHelper.renderStandardBlock(renderer, block, x, y, z);
  137.         }
  138.  
  139.         ClientProxy.reRenderBlocks.renderAllFaces = false;
  140.  
  141.         return true;
  142.     }
  143.  
  144.     @Override
  145.     public boolean shouldRender3DInInventory(int modelId)
  146.     {
  147.         return true;
  148.     }
  149.  
  150.     @Override
  151.     public int getRenderId()
  152.     {
  153.         return ClientProxy.renderBlockPipeID;
  154.     }
  155. }
Add Comment
Please, Sign In to add comment