Advertisement
Superloup10

Render3

Feb 28th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.68 KB | None | 0 0
  1. /*******************************************************************************
  2.  * Copyright (c) 2014, Superloup10
  3.  *
  4.  * Wolf's Addons is distributed under the terms of the Minecraft Mod Public
  5.  * License 1.0, or MMPL. Please check the contents of the license located in
  6.  * https://www.dropbox.com/s/6l16rc7b1aks211/MMPL-1.0.txt
  7.  ******************************************************************************/
  8. package wolf.addons.client.render;
  9.  
  10. import net.minecraft.client.renderer.Tessellator;
  11. import net.minecraft.client.renderer.WorldRenderer;
  12. import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
  13. import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
  14. import net.minecraft.tileentity.TileEntity;
  15. import net.minecraft.util.EnumFacing;
  16. import net.minecraft.util.ResourceLocation;
  17.  
  18. import org.lwjgl.opengl.GL11;
  19.  
  20. import wolf.addons.common.tileentity.TileEntityCable;
  21.  
  22. public class TESRCable extends TileEntitySpecialRenderer
  23. {
  24.     private static final ResourceLocation texture = new ResourceLocation("wolf_addons:textures/blocks/cable1.png");
  25.     private final boolean drawInside = true;
  26.     private final float pixel = 1F / 16F;
  27.     private final float pixel_texture = 1F / 32F;
  28.  
  29.     public TESRCable()
  30.     {
  31.         this.setRendererDispatcher(TileEntityRendererDispatcher.instance);
  32.     }
  33.  
  34.     @Override
  35.     public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale, int p_180535_9_)
  36.     {
  37.         GL11.glTranslated(x, y, z);
  38.         GL11.glDisable(GL11.GL_LIGHTING);
  39.         this.bindTexture(texture);
  40.         this.renderCore((TileEntityCable)te);
  41.         this.renderDirectional(EnumFacing.WEST);
  42.         GL11.glEnable(GL11.GL_LIGHTING);
  43.         GL11.glTranslated(-x, -y, -z);
  44.     }
  45.  
  46.     private void renderDirectional(EnumFacing direction)
  47.     {
  48.         Tessellator tessellator = Tessellator.getInstance();
  49.         WorldRenderer worldrenderer = tessellator.getWorldRenderer();
  50.         worldrenderer.startDrawingQuads();
  51.         {
  52.             GL11.glTranslatef(0.5F, 0.5F, 0.5F);
  53.             switch(direction)
  54.             {
  55.             case NORTH:
  56.                 GL11.glRotatef(270F, 1F, 0F, 0F);
  57.                 break;
  58.             case SOUTH:
  59.                 GL11.glRotatef(90F, 1F, 0F, 0F);
  60.                 break;
  61.             case WEST:
  62.                 GL11.glRotatef(90F, 0F, 0F, 1F);
  63.                 break;
  64.             case EAST:
  65.                 GL11.glRotatef(270F, 0F, 0F, 1F);
  66.                 break;
  67.             case UP:
  68.                 break;
  69.             case DOWN:
  70.                 GL11.glRotatef(180F, 1F, 0F, 0F);
  71.                 break;
  72.             }
  73.             GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
  74.  
  75.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  76.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * pixel_texture, 5 * pixel_texture);
  77.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * pixel_texture, 0 * pixel_texture);
  78.             worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  79.  
  80.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  81.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * pixel_texture, 5 * pixel_texture);
  82.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * pixel_texture, 0 * pixel_texture);
  83.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  84.  
  85.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  86.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * pixel_texture, 5 * pixel_texture);
  87.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * pixel_texture, 0 * pixel_texture);
  88.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  89.  
  90.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  91.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * pixel_texture, 5 * pixel_texture);
  92.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * pixel_texture, 0 * pixel_texture);
  93.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  94.         }
  95.         tessellator.draw();
  96.  
  97.         GL11.glTranslatef(0.5F, 0.5F, 0.5F);
  98.         switch(direction)
  99.         {
  100.         case NORTH:
  101.             GL11.glRotatef(-270F, 1F, 0F, 0F);
  102.             break;
  103.         case SOUTH:
  104.             GL11.glRotatef(-90F, 1F, 0F, 0F);
  105.             break;
  106.         case WEST:
  107.             GL11.glRotatef(-90F, 0F, 0F, 1F);
  108.             break;
  109.         case EAST:
  110.             GL11.glRotatef(-270F, 0F, 0F, 1F);
  111.             break;
  112.         case UP:
  113.             break;
  114.         case DOWN:
  115.             GL11.glRotatef(-180F, 1F, 0F, 0F);
  116.             break;
  117.         }
  118.         GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
  119.     }
  120.  
  121.     private void renderCore(TileEntityCable te)
  122.     {
  123.         Tessellator tessellator = Tessellator.getInstance();
  124.         WorldRenderer worldrenderer = tessellator.getWorldRenderer();
  125.         worldrenderer.startDrawingQuads();
  126.         {
  127.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  128.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  129.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  130.             worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  131.  
  132.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  133.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  134.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  135.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  136.  
  137.             worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  138.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  139.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  140.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  141.  
  142.             worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  143.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  144.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  145.             worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  146.  
  147.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  148.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  149.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  150.             worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  151.  
  152.             worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  153.             worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  154.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  155.             worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  156.  
  157.             if(drawInside)
  158.             {
  159.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  160.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  161.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  162.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  163.  
  164.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  165.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  166.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  167.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  168.  
  169.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  170.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  171.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  172.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  173.  
  174.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  175.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  176.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  177.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  178.  
  179.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  180.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  181.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  182.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  183.  
  184.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * pixel_texture, 5 * pixel_texture);
  185.                 worldrenderer.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * pixel_texture, 0 * pixel_texture);
  186.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * pixel_texture, 0 * pixel_texture);
  187.                 worldrenderer.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * pixel_texture, 5 * pixel_texture);
  188.             }
  189.         }
  190.         tessellator.draw();
  191.     }
  192.  
  193.     private void drawVertex(WorldRenderer worldrenderer, double x, double y, double u, double v)
  194.     {
  195.         x = 11 * pixel / 2;
  196.         y = 1 - 11 * pixel / 2;
  197.         u = 5 * pixel_texture;
  198.         v = 0 * pixel_texture;
  199.         worldrenderer.addVertexWithUV(y, x, y, u, u);
  200.         worldrenderer.addVertexWithUV(y, y, y, u, v);
  201.         worldrenderer.addVertexWithUV(x, y, y, v, v);
  202.         worldrenderer.addVertexWithUV(x, y, y, v, u);
  203.     }
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement