Advertisement
Guest User

Untitled

a guest
Nov 1st, 2015
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.16 KB | None | 0 0
  1. package co.uk.silvania.cities.core.client;
  2.  
  3. import org.lwjgl.opengl.GL11;
  4.  
  5. import co.uk.silvania.cities.core.CoreBlocks;
  6. import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
  7. import net.minecraft.block.Block;
  8. import net.minecraft.client.renderer.RenderBlocks;
  9. import net.minecraft.client.renderer.Tessellator;
  10. import net.minecraft.util.IIcon;
  11. import net.minecraft.world.IBlockAccess;
  12.  
  13. public class LightBlockRenderer implements ISimpleBlockRenderingHandler {
  14.    
  15.     Tessellator tess;
  16.  
  17.     @Override
  18.     public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) {
  19.         tess = Tessellator.instance;
  20.        
  21.         GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
  22.        
  23.         IIcon light = CoreBlocks.lightingBlocks.getIcon(0, meta);
  24.         IIcon side = CoreBlocks.lightingBlocks.getIcon(2, meta);
  25.        
  26.         double u0 = (double) light.getMinU();
  27.         double u1 = (double) light.getMaxU();
  28.        
  29.         double v0 = (double) light.getMinV();
  30.         double v1 = (double) light.getMaxV();
  31.        
  32.         double u2 = (double) side.getMinU();
  33.         double u3 = (double) side.getMaxU();
  34.        
  35.         double v2 = (double) side.getMinV();
  36.         double v3 = (double) side.getMaxV();
  37.        
  38.         final float FACE_XZ_NORMAL = 0.8944F;
  39.         final float FACE_Y_NORMAL  = 0.4472F;
  40.        
  41.         tess.startDrawingQuads();
  42.  
  43.         double a = 0.96875; //base height
  44.         //Top Side
  45.         tess.setNormal(0.0F, 1.0F, 0.0F);
  46.         tess.addVertexWithUV(0, 1, 0, u3, v3);
  47.         tess.addVertexWithUV(0, 1, 1, u3, v2);
  48.         tess.addVertexWithUV(1, 1, 1, u2, v2);
  49.         tess.addVertexWithUV(1, 1, 0, u2, v3);
  50.         tess.draw();
  51.        
  52.         //North Side
  53.         tess.startDrawingQuads();
  54.         tess.setNormal(0.0F, FACE_Y_NORMAL, -FACE_XZ_NORMAL);
  55.         tess.addVertexWithUV(1, 1, 0, u3, v3);
  56.         tess.addVertexWithUV(1, a, 0, u3, v2);
  57.         tess.addVertexWithUV(0, a, 0, u2, v2);
  58.         tess.addVertexWithUV(0, 1, 0, u2, v3);
  59.         tess.draw();
  60.        
  61.         //East Side
  62.         tess.startDrawingQuads();
  63.         tess.setNormal(FACE_XZ_NORMAL, FACE_Y_NORMAL, 0.0F);
  64.         tess.addVertexWithUV(1, 1, 1, u3, v3);
  65.         tess.addVertexWithUV(1, a, 1, u3, v2);
  66.         tess.addVertexWithUV(1, a, 0, u2, v2);
  67.         tess.addVertexWithUV(1, 1, 0, u2, v3);
  68.         tess.draw();
  69.        
  70.         //South Side
  71.         tess.startDrawingQuads();
  72.         tess.setNormal(0.0F, FACE_Y_NORMAL, FACE_XZ_NORMAL);
  73.         tess.addVertexWithUV(0, 1, 1, u3, v3);
  74.         tess.addVertexWithUV(0, a, 1, u3, v2);
  75.         tess.addVertexWithUV(1, a, 1, u2, v2);
  76.         tess.addVertexWithUV(1, 1, 1, u2, v3);
  77.         tess.draw();
  78.  
  79.         //West Side
  80.         tess.startDrawingQuads();
  81.         tess.setNormal(-FACE_XZ_NORMAL, FACE_Y_NORMAL, 0.0F);
  82.         tess.addVertexWithUV(0, 1, 0, u3, v3);
  83.         tess.addVertexWithUV(0, a, 0, u3, v2);
  84.         tess.addVertexWithUV(0, a, 1, u2, v2);
  85.         tess.addVertexWithUV(0, 1, 1, u2, v3);
  86.         tess.draw();
  87.  
  88.         //Bottom Side
  89.         tess.startDrawingQuads();
  90.         tess.setNormal(0.0F, -1.0F, 0.0F);
  91.         tess.addVertexWithUV(0, a, 1, u1, v1);
  92.         tess.addVertexWithUV(0, a, 0, u1, v0);
  93.         tess.addVertexWithUV(1, a, 0, u0, v0);
  94.         tess.addVertexWithUV(1, a, 1, u0, v1);         
  95.  
  96.         tess.draw();
  97.         GL11.glTranslatef(0.5F, 0.5F, 0.5F);
  98.     }
  99.  
  100.     @Override
  101.     public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
  102.         System.out.println("Rendering world block");
  103.         tess = Tessellator.instance;
  104.        
  105.         IIcon light = CoreBlocks.lightingBlocks.getIcon(0, 0);
  106.         IIcon side = CoreBlocks.lightingBlocks.getIcon(2, 0);
  107.        
  108.         double u0 = (double) light.getMinU();
  109.         double u1 = (double) light.getMaxU();
  110.        
  111.         double v0 = (double) light.getMinV();
  112.         double v1 = (double) light.getMaxV();
  113.        
  114.         double u2 = (double) side.getMinU();
  115.         double u3 = (double) side.getMaxU();
  116.        
  117.         double v2 = (double) side.getMinV();
  118.         double v3 = (double) side.getMaxV();
  119.        
  120.         double a = 0.96875;
  121.         //Top Side
  122.         tess.addVertexWithUV(0, 1, 0, u3, v3);
  123.         tess.addVertexWithUV(0, 1, 1, u3, v2);
  124.         tess.addVertexWithUV(1, 1, 1, u2, v2);
  125.         tess.addVertexWithUV(1, 1, 0, u2, v3);
  126.         tess.draw();
  127.        
  128.         //North Side
  129.         tess.startDrawingQuads();
  130.         tess.addVertexWithUV(1, 1, 0, u3, v3);
  131.         tess.addVertexWithUV(1, a, 0, u3, v2);
  132.         tess.addVertexWithUV(0, a, 0, u2, v2);
  133.         tess.addVertexWithUV(0, 1, 0, u2, v3);
  134.         tess.draw();
  135.        
  136.         //East Side
  137.         tess.startDrawingQuads();
  138.         tess.addVertexWithUV(1, 1, 1, u3, v3);
  139.         tess.addVertexWithUV(1, a, 1, u3, v2);
  140.         tess.addVertexWithUV(1, a, 0, u2, v2);
  141.         tess.addVertexWithUV(1, 1, 0, u2, v3);
  142.         tess.draw();
  143.        
  144.         //South Side
  145.         tess.startDrawingQuads();
  146.         tess.addVertexWithUV(0, 1, 1, u3, v3);
  147.         tess.addVertexWithUV(0, a, 1, u3, v2);
  148.         tess.addVertexWithUV(1, a, 1, u2, v2);
  149.         tess.addVertexWithUV(1, 1, 1, u2, v3);
  150.         tess.draw();
  151.  
  152.         //West Side
  153.         tess.startDrawingQuads();
  154.         tess.addVertexWithUV(0, 1, 0, u3, v3);
  155.         tess.addVertexWithUV(0, a, 0, u3, v2);
  156.         tess.addVertexWithUV(0, a, 1, u2, v2);
  157.         tess.addVertexWithUV(0, 1, 1, u2, v3);
  158.         tess.draw();
  159.  
  160.         //Bottom Side
  161.         tess.startDrawingQuads();
  162.         tess.addVertexWithUV(0, a, 1, u1, v1);
  163.         tess.addVertexWithUV(0, a, 0, u1, v0);
  164.         tess.addVertexWithUV(1, a, 0, u0, v0);
  165.         tess.addVertexWithUV(1, a, 1, u0, v1);
  166.  
  167.         return true;
  168.     }
  169.  
  170.     @Override
  171.     public boolean shouldRender3DInInventory(int modelId) {
  172.         return true;
  173.     }
  174.  
  175.     @Override
  176.     public int getRenderId() {
  177.         return ClientProxy.lightBlockRenderID;
  178.     }
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement