Advertisement
Guest User

LavaGlassRenderer

a guest
Apr 15th, 2015
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.48 KB | None | 0 0
  1. package yesodmod.general.client;
  2.  
  3. import net.minecraft.block.Block;
  4. import net.minecraft.client.renderer.RenderBlocks;
  5. import net.minecraft.client.renderer.Tessellator;
  6. import net.minecraft.init.Blocks;
  7. import net.minecraft.util.IIcon;
  8. import net.minecraft.world.IBlockAccess;
  9.  
  10. import org.lwjgl.opengl.GL11;
  11.  
  12. import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
  13.  
  14. public class LavaGlassRenderer implements ISimpleBlockRenderingHandler {
  15.  
  16.     @Override
  17.     public void renderInventoryBlock(Block block, int metadata, int modelId,
  18.             RenderBlocks renderer)
  19.     {
  20.  
  21.     }
  22.  
  23.     @Override
  24.     public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z,
  25.             Block block, int modelId, RenderBlocks renderer)
  26.     {      
  27.         //which render pass are we doing?
  28.         if(ClientProxy.renderPass == 0)
  29.         {
  30.                 //we are on the solid block render pass, lets render the solid diamond block
  31.                 IIcon icon = renderer.getBlockIconFromSide(Blocks.lava, 3);
  32.                 IIcon iconTop = renderer.getBlockIconFromSide(Blocks.lava, 0);
  33.                 drawLava(icon, iconTop, x,y,z);
  34.         }
  35.         else                    
  36.         {
  37.                 //we are on the alpha render pass, draw the ice around the diamond
  38.                 renderer.renderStandardBlock(Blocks.glass, x, y, z);
  39.                
  40.         }
  41.        
  42.         return true;
  43.     }
  44.  
  45.     private void drawLava(IIcon texture, IIcon textureTop, int x, int y, int z)
  46.     {
  47.        
  48.         Tessellator tassellator = Tessellator.instance;
  49.         //set the texture
  50.        
  51.         double minU = texture.getMinU();
  52.         double maxU = texture.getMaxU();
  53.         double minV = texture.getMinV();
  54.         double maxV = texture.getMaxV();
  55.        
  56.         double minUTop = textureTop.getMinU();
  57.         double maxUTop = textureTop.getMaxU();
  58.         double minVTop = textureTop.getMinV();
  59.         double maxVTop = textureTop.getMaxV();
  60.        
  61.         //offset the vertices from the centre of the block
  62.         double xFinalmin = x + 0.10D;
  63.         double xFinalmax = x + 0.90D;
  64.         double yFinalmin = y + 0.10D;
  65.         double yFinalmax = y + 0.90D;
  66.         double zFinalmin = z + 0.90D;
  67.         double zFinalmax = z + 0.10D;
  68.        
  69.         //facce laterali
  70.         tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmin, maxU, maxV);
  71.         tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmin, maxU, minV);
  72.         tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmin, minU, minV);
  73.         tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmin, minU, maxV);
  74.        
  75.         tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmin, minU, maxV);
  76.         tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmin, minU, minV);
  77.         tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmax, maxU, minV);
  78.         tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmax, maxU, maxV);
  79.  
  80.         tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmax, maxU, maxV);
  81.         tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmax, maxU, minV);
  82.         tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmax, minU, minV);
  83.         tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmax, minU, maxV);
  84.  
  85.         tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmax, minU, maxV);
  86.         tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmax, minU, minV);
  87.         tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmin, maxU, minV);      
  88.         tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmin, maxU, maxV);
  89.  
  90.         //facce inferiori e superiori
  91.        
  92.         tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmin, maxUTop, maxVTop);
  93.         tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmin, maxUTop, minVTop);
  94.         tassellator.addVertexWithUV(xFinalmin, yFinalmin, zFinalmax, minUTop, minVTop);
  95.         tassellator.addVertexWithUV(xFinalmax, yFinalmin, zFinalmax, minUTop, maxVTop);
  96.        
  97.         tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmax, minUTop, maxVTop);
  98.         tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmax, minUTop, minVTop);
  99.         tassellator.addVertexWithUV(xFinalmin, yFinalmax, zFinalmin, maxUTop, minVTop);
  100.         tassellator.addVertexWithUV(xFinalmax, yFinalmax, zFinalmin, maxUTop, maxVTop);
  101.  
  102.     }
  103.  
  104.     @Override
  105.     public boolean shouldRender3DInInventory(int modelId)
  106.     {
  107.         return false;
  108.     }
  109.  
  110.     @Override
  111.     public int getRenderId()
  112.     {
  113.         return ClientProxy.lavaGlassRenderType;
  114.     }
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement