The text below is selected, press Ctrl+C to copy to your clipboard. (⌘+C on Mac) No line numbers will be copied.
Guest
Cv
By Guest on 11th October 2018 02:32:51 AM | Syntax: JAVA | Views: 1



New paste | Download | Show/Hide line no. | Copy text to clipboard
  1. import net.minecraft.client.Minecraft;
  2. import org.lwjgl.opengl.GL11;
  3.  
  4. public class cv {
  5.  
  6.    public xp c;
  7.    public int d;
  8.    public boolean e;
  9.    public boolean f;
  10.    public static boolean a = true;
  11.    public static boolean cfgGrassFix = true;
  12.    public boolean b;
  13.    public int g;
  14.    public int h;
  15.    public int i;
  16.    public int j;
  17.    public int k;
  18.    public int l;
  19.    public boolean m;
  20.    public float n;
  21.    public float o;
  22.    public float p;
  23.    public float q;
  24.    public float r;
  25.    public float s;
  26.    public float t;
  27.    public float u;
  28.    public float v;
  29.    public float w;
  30.    public float x;
  31.    public float y;
  32.    public float z;
  33.    public float A;
  34.    public float B;
  35.    public float C;
  36.    public float D;
  37.    public float E;
  38.    public float F;
  39.    public float G;
  40.    public float H;
  41.    public float I;
  42.    public float J;
  43.    public float K;
  44.    public float L;
  45.    public float M;
  46.    public float N;
  47.    public int O;
  48.    public float P;
  49.    public float Q;
  50.    public float R;
  51.    public float S;
  52.    public float T;
  53.    public float U;
  54.    public float V;
  55.    public float W;
  56.    public float X;
  57.    public float Y;
  58.    public float Z;
  59.    public float aa;
  60.    public boolean ab;
  61.    public boolean ac;
  62.    public boolean ad;
  63.    public boolean ae;
  64.    public boolean af;
  65.    public boolean ag;
  66.    public boolean ah;
  67.    public boolean ai;
  68.    public boolean aj;
  69.    public boolean ak;
  70.    public boolean al;
  71.    public boolean am;
  72.    public static float[][] redstoneColors = new float[16][];
  73.    private int textureNum;
  74.  
  75.  
  76.    public cv(xp iblockaccess) {
  77.       this();
  78.       this.c = iblockaccess;
  79.    }
  80.  
  81.    public cv() {
  82.       this.textureNum = -1;
  83.       this.c = null;
  84.       this.d = 0;
  85.       this.e = false;
  86.       this.f = false;
  87.       this.b = false;
  88.       this.g = 0;
  89.       this.h = 0;
  90.       this.i = 0;
  91.       this.j = 0;
  92.       this.k = 0;
  93.       this.l = 0;
  94.       this.m = false;
  95.       this.n = 0.0F;
  96.       this.o = 0.0F;
  97.       this.p = 0.0F;
  98.       this.q = 0.0F;
  99.       this.r = 0.0F;
  100.       this.s = 0.0F;
  101.       this.t = 0.0F;
  102.       this.u = 0.0F;
  103.       this.v = 0.0F;
  104.       this.w = 0.0F;
  105.       this.x = 0.0F;
  106.       this.y = 0.0F;
  107.       this.z = 0.0F;
  108.       this.A = 0.0F;
  109.       this.B = 0.0F;
  110.       this.C = 0.0F;
  111.       this.D = 0.0F;
  112.       this.E = 0.0F;
  113.       this.F = 0.0F;
  114.       this.G = 0.0F;
  115.       this.H = 0.0F;
  116.       this.I = 0.0F;
  117.       this.J = 0.0F;
  118.       this.K = 0.0F;
  119.       this.L = 0.0F;
  120.       this.M = 0.0F;
  121.       this.N = 0.0F;
  122.       this.O = 0;
  123.       this.P = 0.0F;
  124.       this.Q = 0.0F;
  125.       this.R = 0.0F;
  126.       this.S = 0.0F;
  127.       this.T = 0.0F;
  128.       this.U = 0.0F;
  129.       this.V = 0.0F;
  130.       this.W = 0.0F;
  131.       this.X = 0.0F;
  132.       this.Y = 0.0F;
  133.       this.Z = 0.0F;
  134.       this.aa = 0.0F;
  135.       this.ab = false;
  136.       this.ac = false;
  137.       this.ad = false;
  138.       this.ae = false;
  139.       this.af = false;
  140.       this.ag = false;
  141.       this.ah = false;
  142.       this.ai = false;
  143.       this.aj = false;
  144.       this.ak = false;
  145.       this.al = false;
  146.       this.am = false;
  147.       this.d = -1;
  148.       this.e = false;
  149.       this.f = false;
  150.       this.b = true;
  151.       this.g = 0;
  152.       this.h = 0;
  153.       this.i = 0;
  154.       this.j = 0;
  155.       this.k = 0;
  156.       this.l = 0;
  157.       this.O = 1;
  158.    }
  159.  
  160.    public void a(uu block, int i, int j, int k, int l) {
  161.       this.d = l;
  162.       this.b(block, i, j, k);
  163.       this.d = -1;
  164.    }
  165.  
  166.    public void a(uu block, int i, int j, int k) {
  167.       this.f = true;
  168.       this.b(block, i, j, k);
  169.       this.f = false;
  170.    }
  171.  
  172.    public int getCurrentTexture() {
  173.       return this.textureNum;
  174.    }
  175.  
  176.    public boolean renderBlockByRenderType(uu block, int i, int j, int k, int textureNum) {
  177.       this.textureNum = textureNum;
  178.       boolean flag = this.b(block, i, j, k);
  179.       this.textureNum = -1;
  180.       return flag;
  181.    }
  182.  
  183.    public boolean b(uu block, int i, int j, int k) {
  184.       int l = block.b();
  185.       block.a(this.c, i, j, k);
  186.       return l == 0?this.l(block, i, j, k):(l == 4?this.k(block, i, j, k):(l == 13?this.m(block, i, j, k):(l == 1?this.i(block, i, j, k):(l == 6?this.j(block, i, j, k):(l == 2?this.c(block, i, j, k):(l == 3?this.f(block, i, j, k):(l == 5?this.g(block, i, j, k):(l == 8?this.h(block, i, j, k):(l == 7?this.p(block, i, j, k):(l == 9?this.a((pc)block, i, j, k):(l == 10?this.o(block, i, j, k):(l == 11?this.n(block, i, j, k):(l == 12?this.e(block, i, j, k):(l == 14?this.q(block, i, j, k):(l == 15?this.r(block, i, j, k):(l == 16?this.b(block, i, j, k, false):(l == 17?this.c(block, i, j, k, true):ModLoader.RenderWorldBlock(this, this.c, i, j, k, block, l))))))))))))))))));
  187.    }
  188.  
  189.    public boolean q(uu block, int i, int j, int k) {
  190.       nw tessellator = nw.a;
  191.       int l = this.c.e(i, j, k);
  192.       int i1 = ve.d(l);
  193.       boolean flag = ve.e(l);
  194.       float f = 0.5F;
  195.       float f1 = 1.0F;
  196.       float f2 = 0.8F;
  197.       float f3 = 0.6F;
  198.       float f16 = block.d(this.c, i, j, k);
  199.       tessellator.a(f * f16, f * f16, f * f16);
  200.       int j1 = block.a(this.c, i, j, k, 0);
  201.       int k1 = (j1 & 15) << 4;
  202.       int l1 = j1 & 240;
  203.       double d = (double)((float)k1 / 256.0F);
  204.       double d1 = ((double)(k1 + 16) - 0.01D) / 256.0D;
  205.       double d2 = (double)((float)l1 / 256.0F);
  206.       double d3 = ((double)(l1 + 16) - 0.01D) / 256.0D;
  207.       double d4 = (double)i + block.bs;
  208.       double d5 = (double)i + block.bv;
  209.       double d6 = (double)j + block.bt + 0.1875D;
  210.       double d7 = (double)k + block.bu;
  211.       double d8 = (double)k + block.bx;
  212.       tessellator.a(d4, d6, d8, d, d3);
  213.       tessellator.a(d4, d6, d7, d, d2);
  214.       tessellator.a(d5, d6, d7, d1, d2);
  215.       tessellator.a(d5, d6, d8, d1, d3);
  216.       float f17 = block.d(this.c, i, j + 1, k);
  217.       tessellator.a(f1 * f17, f1 * f17, f1 * f17);
  218.       k1 = block.a(this.c, i, j, k, 1);
  219.       l1 = (k1 & 15) << 4;
  220.       d = (double)(k1 & 240);
  221.       double d9 = (double)((float)l1 / 256.0F);
  222.       double d10 = ((double)(l1 + 16) - 0.01D) / 256.0D;
  223.       double d11 = (double)((float)d / 256.0F);
  224.       double d12 = (d + 16.0D - 0.01D) / 256.0D;
  225.       double d13 = d9;
  226.       double d14 = d10;
  227.       double d15 = d11;
  228.       double d16 = d11;
  229.       double d17 = d9;
  230.       double d18 = d10;
  231.       double d19 = d12;
  232.       double d20 = d12;
  233.       if(i1 == 0) {
  234.          d14 = d9;
  235.          d15 = d12;
  236.          d17 = d10;
  237.          d20 = d11;
  238.       } else if(i1 == 2) {
  239.          d13 = d10;
  240.          d16 = d12;
  241.          d18 = d9;
  242.          d19 = d11;
  243.       } else if(i1 == 3) {
  244.          d13 = d10;
  245.          d16 = d12;
  246.          d18 = d9;
  247.          d19 = d11;
  248.          d14 = d9;
  249.          d15 = d12;
  250.          d17 = d10;
  251.          d20 = d11;
  252.       }
  253.  
  254.       double d21 = (double)i + block.bs;
  255.       double d22 = (double)i + block.bv;
  256.       double d23 = (double)j + block.bw;
  257.       double d24 = (double)k + block.bu;
  258.       double d25 = (double)k + block.bx;
  259.       tessellator.a(d22, d23, d25, d17, d19);
  260.       tessellator.a(d22, d23, d24, d13, d15);
  261.       tessellator.a(d21, d23, d24, d14, d16);
  262.       tessellator.a(d21, d23, d25, d18, d20);
  263.       f17 = (float)jj.a[i1];
  264.       if(flag) {
  265.          f17 = (float)jj.a[jj.b[i1]];
  266.       }
  267.  
  268.       byte k11 = 4;
  269.       switch(i1) {
  270.       case 0:
  271.          k11 = 5;
  272.          break;
  273.       case 1:
  274.          k11 = 3;
  275.       case 2:
  276.       default:
  277.          break;
  278.       case 3:
  279.          k11 = 2;
  280.       }
  281.  
  282.       float f21;
  283.       if(f17 != 2.0F && (this.f || block.b(this.c, i, j, k - 1, 2))) {
  284.          f21 = block.d(this.c, i, j, k - 1);
  285.          if(block.bu > 0.0D) {
  286.             f21 = f16;
  287.          }
  288.  
  289.          tessellator.a(f2 * f21, f2 * f21, f2 * f21);
  290.          this.e = k11 == 2;
  291.          this.c(block, (double)i, (double)j, (double)k, block.a(this.c, i, j, k, 2));
  292.       }
  293.  
  294.       if(f17 != 3.0F && (this.f || block.b(this.c, i, j, k + 1, 3))) {
  295.          f21 = block.d(this.c, i, j, k + 1);
  296.          if(block.bx < 1.0D) {
  297.             f21 = f16;
  298.          }
  299.  
  300.          tessellator.a(f2 * f21, f2 * f21, f2 * f21);
  301.          this.e = k11 == 3;
  302.          this.d(block, (double)i, (double)j, (double)k, block.a(this.c, i, j, k, 3));
  303.       }
  304.  
  305.       if(f17 != 4.0F && (this.f || block.b(this.c, i - 1, j, k, 4))) {
  306.          f21 = block.d(this.c, i - 1, j, k);
  307.          if(block.bs > 0.0D) {
  308.             f21 = f16;
  309.          }
  310.  
  311.          tessellator.a(f3 * f21, f3 * f21, f3 * f21);
  312.          this.e = k11 == 4;
  313.          this.e(block, (double)i, (double)j, (double)k, block.a(this.c, i, j, k, 4));
  314.       }
  315.  
  316.       if(f17 != 5.0F && (this.f || block.b(this.c, i + 1, j, k, 5))) {
  317.          f21 = block.d(this.c, i + 1, j, k);
  318.          if(block.bv < 1.0D) {
  319.             f21 = f16;
  320.          }
  321.  
  322.          tessellator.a(f3 * f21, f3 * f21, f3 * f21);
  323.          this.e = k11 == 5;
  324.          this.f(block, (double)i, (double)j, (double)k, block.a(this.c, i, j, k, 5));
  325.       }
  326.  
  327.       this.e = false;
  328.       return true;
  329.    }
  330.  
  331.    public boolean c(uu block, int i, int j, int k) {
  332.       int l = this.c.e(i, j, k);
  333.       nw tessellator = nw.a;
  334.       float f = block.d(this.c, i, j, k);
  335.       if(uu.s[block.bn] > 0) {
  336.          f = 1.0F;
  337.       }
  338.  
  339.       tessellator.a(f, f, f);
  340.       double d = 0.4000000059604645D;
  341.       double d1 = 0.5D - d;
  342.       double d2 = 0.20000000298023224D;
  343.       if(l == 1) {
  344.          this.a(block, (double)i - d1, (double)j + d2, (double)k, -d, 0.0D);
  345.       } else if(l == 2) {
  346.          this.a(block, (double)i + d1, (double)j + d2, (double)k, d, 0.0D);
  347.       } else if(l == 3) {
  348.          this.a(block, (double)i, (double)j + d2, (double)k - d1, 0.0D, -d);
  349.       } else if(l == 4) {
  350.          this.a(block, (double)i, (double)j + d2, (double)k + d1, 0.0D, d);
  351.       } else {
  352.          this.a(block, (double)i, (double)j, (double)k, 0.0D, 0.0D);
  353.       }
  354.  
  355.       return true;
  356.    }
  357.  
  358.    public boolean r(uu block, int i, int j, int k) {
  359.       int l = this.c.e(i, j, k);
  360.       int i1 = l & 3;
  361.       int j1 = (l & 12) >> 2;
  362.       this.l(block, i, j, k);
  363.       nw tessellator = nw.a;
  364.       float f = block.d(this.c, i, j, k);
  365.       if(uu.s[block.bn] > 0) {
  366.          f = (f + 1.0F) * 0.5F;
  367.       }
  368.  
  369.       tessellator.a(f, f, f);
  370.       double d = -0.1875D;
  371.       double d1 = 0.0D;
  372.       double d2 = 0.0D;
  373.       double d3 = 0.0D;
  374.       double d4 = 0.0D;
  375.       switch(i1) {
  376.       case 0:
  377.          d4 = -0.3125D;
  378.          d2 = wo.a[j1];
  379.          break;
  380.       case 1:
  381.          d3 = 0.3125D;
  382.          d1 = -wo.a[j1];
  383.          break;
  384.       case 2:
  385.          d4 = 0.3125D;
  386.          d2 = -wo.a[j1];
  387.          break;
  388.       case 3:
  389.          d3 = -0.3125D;
  390.          d1 = wo.a[j1];
  391.       }
  392.  
  393.       this.a(block, (double)i + d1, (double)j + d, (double)k + d2, 0.0D, 0.0D);
  394.       this.a(block, (double)i + d3, (double)j + d, (double)k + d4, 0.0D, 0.0D);
  395.       int k1 = block.a(1);
  396.       int l1 = (k1 & 15) << 4;
  397.       int i2 = k1 & 240;
  398.       double d5 = (double)((float)l1 / 256.0F);
  399.       double d6 = (double)(((float)l1 + 15.99F) / 256.0F);
  400.       double d7 = (double)((float)i2 / 256.0F);
  401.       double d8 = (double)(((float)i2 + 15.99F) / 256.0F);
  402.       float f1 = 0.125F;
  403.       float f2 = (float)(i + 1);
  404.       float f3 = (float)(i + 1);
  405.       float f4 = (float)(i + 0);
  406.       float f5 = (float)(i + 0);
  407.       float f6 = (float)(k + 0);
  408.       float f7 = (float)(k + 1);
  409.       float f8 = (float)(k + 1);
  410.       float f9 = (float)(k + 0);
  411.       float f10 = (float)j + f1;
  412.       if(i1 == 2) {
  413.          f2 = f3 = (float)(i + 0);
  414.          f4 = f5 = (float)(i + 1);
  415.          f6 = f9 = (float)(k + 1);
  416.          f7 = f8 = (float)(k + 0);
  417.       } else if(i1 == 3) {
  418.          f2 = f5 = (float)(i + 0);
  419.          f3 = f4 = (float)(i + 1);
  420.          f6 = f7 = (float)(k + 0);
  421.          f8 = f9 = (float)(k + 1);
  422.       } else if(i1 == 1) {
  423.          f2 = f5 = (float)(i + 1);
  424.          f3 = f4 = (float)(i + 0);
  425.          f6 = f7 = (float)(k + 1);
  426.          f8 = f9 = (float)(k + 0);
  427.       }
  428.  
  429.       tessellator.a((double)f5, (double)f10, (double)f9, d5, d7);
  430.       tessellator.a((double)f4, (double)f10, (double)f8, d5, d8);
  431.       tessellator.a((double)f3, (double)f10, (double)f7, d6, d8);
  432.       tessellator.a((double)f2, (double)f10, (double)f6, d6, d7);
  433.       return true;
  434.    }
  435.  
  436.    public void d(uu block, int i, int j, int k) {
  437.       this.f = true;
  438.       this.b(block, i, j, k, true);
  439.       this.f = false;
  440.    }
  441.  
  442.    public boolean b(uu block, int i, int j, int k, boolean flag) {
  443.       int l = this.c.e(i, j, k);
  444.       boolean flag1 = flag || (l & 8) != 0;
  445.       int i1 = jq.d(l);
  446.       if(flag1) {
  447.          switch(i1) {
  448.          case 0:
  449.             this.g = 3;
  450.             this.h = 3;
  451.             this.i = 3;
  452.             this.j = 3;
  453.             block.a(0.0F, 0.25F, 0.0F, 1.0F, 1.0F, 1.0F);
  454.             break;
  455.          case 1:
  456.             block.a(0.0F, 0.0F, 0.0F, 1.0F, 0.75F, 1.0F);
  457.             break;
  458.          case 2:
  459.             this.i = 1;
  460.             this.j = 2;
  461.             block.a(0.0F, 0.0F, 0.25F, 1.0F, 1.0F, 1.0F);
  462.             break;
  463.          case 3:
  464.             this.i = 2;
  465.             this.j = 1;
  466.             this.k = 3;
  467.             this.l = 3;
  468.             block.a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.75F);
  469.             break;
  470.          case 4:
  471.             this.g = 1;
  472.             this.h = 2;
  473.             this.k = 2;
  474.             this.l = 1;
  475.             block.a(0.25F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
  476.             break;
  477.          case 5:
  478.             this.g = 2;
  479.             this.h = 1;
  480.             this.k = 1;
  481.             this.l = 2;
  482.             block.a(0.0F, 0.0F, 0.0F, 0.75F, 1.0F, 1.0F);
  483.          }
  484.  
  485.          this.l(block, i, j, k);
  486.          this.g = 0;
  487.          this.h = 0;
  488.          this.i = 0;
  489.          this.j = 0;
  490.          this.k = 0;
  491.          this.l = 0;
  492.          block.a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
  493.       } else {
  494.          switch(i1) {
  495.          case 0:
  496.             this.g = 3;
  497.             this.h = 3;
  498.             this.i = 3;
  499.             this.j = 3;
  500.          case 1:
  501.          default:
  502.             break;
  503.          case 2:
  504.             this.i = 1;
  505.             this.j = 2;
  506.             break;
  507.          case 3:
  508.             this.i = 2;
  509.             this.j = 1;
  510.             this.k = 3;
  511.             this.l = 3;
  512.             break;
  513.          case 4:
  514.             this.g = 1;
  515.             this.h = 2;
  516.             this.k = 2;
  517.             this.l = 1;
  518.             break;
  519.          case 5:
  520.             this.g = 2;
  521.             this.h = 1;
  522.             this.k = 1;
  523.             this.l = 2;
  524.          }
  525.  
  526.          this.l(block, i, j, k);
  527.          this.g = 0;
  528.          this.h = 0;
  529.          this.i = 0;
  530.          this.j = 0;
  531.          this.k = 0;
  532.          this.l = 0;
  533.       }
  534.  
  535.       return true;
  536.    }
  537.  
  538.    public void a(double d, double d1, double d2, double d3, double d4, double d5, float f, double d6) {
  539.       int i = 108;
  540.       if(this.d >= 0) {
  541.          i = this.d;
  542.       }
  543.  
  544.       int j = (i & 15) << 4;
  545.       int k = i & 240;
  546.       nw tessellator = nw.a;
  547.       double d7 = (double)((float)(j + 0) / 256.0F);
  548.       double d8 = (double)((float)(k + 0) / 256.0F);
  549.       double d9 = ((double)j + d6 - 0.01D) / 256.0D;
  550.       double d10 = ((double)((float)k + 4.0F) - 0.01D) / 256.0D;
  551.       tessellator.a(f, f, f);
  552.       tessellator.a(d, d3, d4, d9, d8);
  553.       tessellator.a(d, d2, d4, d7, d8);
  554.       tessellator.a(d1, d2, d5, d7, d10);
  555.       tessellator.a(d1, d3, d5, d9, d10);
  556.    }
  557.  
  558.    public void b(double d, double d1, double d2, double d3, double d4, double d5, float f, double d6) {
  559.       int i = 108;
  560.       if(this.d >= 0) {
  561.          i = this.d;
  562.       }
  563.  
  564.       int j = (i & 15) << 4;
  565.       int k = i & 240;
  566.       nw tessellator = nw.a;
  567.       double d7 = (double)((float)(j + 0) / 256.0F);
  568.       double d8 = (double)((float)(k + 0) / 256.0F);
  569.       double d9 = ((double)j + d6 - 0.01D) / 256.0D;
  570.       double d10 = ((double)((float)k + 4.0F) - 0.01D) / 256.0D;
  571.       tessellator.a(f, f, f);
  572.       tessellator.a(d, d2, d5, d9, d8);
  573.       tessellator.a(d, d2, d4, d7, d8);
  574.       tessellator.a(d1, d3, d4, d7, d10);
  575.       tessellator.a(d1, d3, d5, d9, d10);
  576.    }
  577.  
  578.    public void c(double d, double d1, double d2, double d3, double d4, double d5, float f, double d6) {
  579.       int i = 108;
  580.       if(this.d >= 0) {
  581.          i = this.d;
  582.       }
  583.  
  584.       int j = (i & 15) << 4;
  585.       int k = i & 240;
  586.       nw tessellator = nw.a;
  587.       double d7 = (double)((float)(j + 0) / 256.0F);
  588.       double d8 = (double)((float)(k + 0) / 256.0F);
  589.       double d9 = ((double)j + d6 - 0.01D) / 256.0D;
  590.       double d10 = ((double)((float)k + 4.0F) - 0.01D) / 256.0D;
  591.       tessellator.a(f, f, f);
  592.       tessellator.a(d1, d2, d4, d9, d8);
  593.       tessellator.a(d, d2, d4, d7, d8);
  594.       tessellator.a(d, d3, d5, d7, d10);
  595.       tessellator.a(d1, d3, d5, d9, d10);
  596.    }
  597.  
  598.    public void a(uu block, int i, int j, int k, boolean flag) {
  599.       this.f = true;
  600.       this.c(block, i, j, k, flag);
  601.       this.f = false;
  602.    }
  603.  
  604.    public boolean c(uu block, int i, int j, int k, boolean flag) {
  605.       int l = this.c.e(i, j, k);
  606.       int i1 = h.c(l);
  607.       float f = block.d(this.c, i, j, k);
  608.       float f1 = flag?1.0F:0.5F;
  609.       double d = flag?16.0D:8.0D;
  610.       switch(i1) {
  611.       case 0:
  612.          this.g = 3;
  613.          this.h = 3;
  614.          this.i = 3;
  615.          this.j = 3;
  616.          block.a(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
  617.          this.l(block, i, j, k);
  618.          this.a((double)((float)i + 0.375F), (double)((float)i + 0.625F), (double)((float)j + 0.25F), (double)((float)j + 0.25F + f1), (double)((float)k + 0.625F), (double)((float)k + 0.625F), f * 0.8F, d);
  619.          this.a((double)((float)i + 0.625F), (double)((float)i + 0.375F), (double)((float)j + 0.25F), (double)((float)j + 0.25F + f1), (double)((float)k + 0.375F), (double)((float)k + 0.375F), f * 0.8F, d);
  620.          this.a((double)((float)i + 0.375F), (double)((float)i + 0.375F), (double)((float)j + 0.25F), (double)((float)j + 0.25F + f1), (double)((float)k + 0.375F), (double)((float)k + 0.625F), f * 0.6F, d);
  621.          this.a((double)((float)i + 0.625F), (double)((float)i + 0.625F), (double)((float)j + 0.25F), (double)((float)j + 0.25F + f1), (double)((float)k + 0.625F), (double)((float)k + 0.375F), f * 0.6F, d);
  622.          break;
  623.       case 1:
  624.          block.a(0.0F, 0.75F, 0.0F, 1.0F, 1.0F, 1.0F);
  625.          this.l(block, i, j, k);
  626.          this.a((double)((float)i + 0.375F), (double)((float)i + 0.625F), (double)((float)j - 0.25F + 1.0F - f1), (double)((float)j - 0.25F + 1.0F), (double)((float)k + 0.625F), (double)((float)k + 0.625F), f * 0.8F, d);
  627.          this.a((double)((float)i + 0.625F), (double)((float)i + 0.375F), (double)((float)j - 0.25F + 1.0F - f1), (double)((float)j - 0.25F + 1.0F), (double)((float)k + 0.375F), (double)((float)k + 0.375F), f * 0.8F, d);
  628.          this.a((double)((float)i + 0.375F), (double)((float)i + 0.375F), (double)((float)j - 0.25F + 1.0F - f1), (double)((float)j - 0.25F + 1.0F), (double)((float)k + 0.375F), (double)((float)k + 0.625F), f * 0.6F, d);
  629.          this.a((double)((float)i + 0.625F), (double)((float)i + 0.625F), (double)((float)j - 0.25F + 1.0F - f1), (double)((float)j - 0.25F + 1.0F), (double)((float)k + 0.625F), (double)((float)k + 0.375F), f * 0.6F, d);
  630.          break;
  631.       case 2:
  632.          this.i = 1;
  633.          this.j = 2;
  634.          block.a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
  635.          this.l(block, i, j, k);
  636.          this.b((double)((float)i + 0.375F), (double)((float)i + 0.375F), (double)((float)j + 0.625F), (double)((float)j + 0.375F), (double)((float)k + 0.25F), (double)((float)k + 0.25F + f1), f * 0.6F, d);
  637.          this.b((double)((float)i + 0.625F), (double)((float)i + 0.625F), (double)((float)j + 0.375F), (double)((float)j + 0.625F), (double)((float)k + 0.25F), (double)((float)k + 0.25F + f1), f * 0.6F, d);
  638.          this.b((double)((float)i + 0.375F), (double)((float)i + 0.625F), (double)((float)j + 0.375F), (double)((float)j + 0.375F), (double)((float)k + 0.25F), (double)((float)k + 0.25F + f1), f * 0.5F, d);
  639.          this.b((double)((float)i + 0.625F), (double)((float)i + 0.375F), (double)((float)j + 0.625F), (double)((float)j + 0.625F), (double)((float)k + 0.25F), (double)((float)k + 0.25F + f1), f, d);
  640.          break;
  641.       case 3:
  642.          this.i = 2;
  643.          this.j = 1;
  644.          this.k = 3;
  645.          this.l = 3;
  646.          block.a(0.0F, 0.0F, 0.75F, 1.0F, 1.0F, 1.0F);
  647.          this.l(block, i, j, k);
  648.          this.b((double)((float)i + 0.375F), (double)((float)i + 0.375F), (double)((float)j + 0.625F), (double)((float)j + 0.375F), (double)((float)k - 0.25F + 1.0F - f1), (double)((float)k - 0.25F + 1.0F), f * 0.6F, d);
  649.          this.b((double)((float)i + 0.625F), (double)((float)i + 0.625F), (double)((float)j + 0.375F), (double)((float)j + 0.625F), (double)((float)k - 0.25F + 1.0F - f1), (double)((float)k - 0.25F + 1.0F), f * 0.6F, d);
  650.          this.b((double)((float)i + 0.375F), (double)((float)i + 0.625F), (double)((float)j + 0.375F), (double)((float)j + 0.375F), (double)((float)k - 0.25F + 1.0F - f1), (double)((float)k - 0.25F + 1.0F), f * 0.5F, d);
  651.          this.b((double)((float)i + 0.625F), (double)((float)i + 0.375F), (double)((float)j + 0.625F), (double)((float)j + 0.625F), (double)((float)k - 0.25F + 1.0F - f1), (double)((float)k - 0.25F + 1.0F), f, d);
  652.          break;
  653.       case 4:
  654.          this.g = 1;
  655.          this.h = 2;
  656.          this.k = 2;
  657.          this.l = 1;
  658.          block.a(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
  659.          this.l(block, i, j, k);
  660.          this.c((double)((float)i + 0.25F), (double)((float)i + 0.25F + f1), (double)((float)j + 0.375F), (double)((float)j + 0.375F), (double)((float)k + 0.625F), (double)((float)k + 0.375F), f * 0.5F, d);
  661.          this.c((double)((float)i + 0.25F), (double)((float)i + 0.25F + f1), (double)((float)j + 0.625F), (double)((float)j + 0.625F), (double)((float)k + 0.375F), (double)((float)k + 0.625F), f, d);
  662.          this.c((double)((float)i + 0.25F), (double)((float)i + 0.25F + f1), (double)((float)j + 0.375F), (double)((float)j + 0.625F), (double)((float)k + 0.375F), (double)((float)k + 0.375F), f * 0.6F, d);
  663.          this.c((double)((float)i + 0.25F), (double)((float)i + 0.25F + f1), (double)((float)j + 0.625F), (double)((float)j + 0.375F), (double)((float)k + 0.625F), (double)((float)k + 0.625F), f * 0.6F, d);
  664.          break;
  665.       case 5:
  666.          this.g = 2;
  667.          this.h = 1;
  668.          this.k = 1;
  669.          this.l = 2;
  670.          block.a(0.75F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
  671.          this.l(block, i, j, k);
  672.          this.c((double)((float)i - 0.25F + 1.0F - f1), (double)((float)i - 0.25F + 1.0F), (double)((float)j + 0.375F), (double)((float)j + 0.375F), (double)((float)k + 0.625F), (double)((float)k + 0.375F), f * 0.5F, d);
  673.          this.c((double)((float)i - 0.25F + 1.0F - f1), (double)((float)i - 0.25F + 1.0F), (double)((float)j + 0.625F), (double)((float)j + 0.625F), (double)((float)k + 0.375F), (double)((float)k + 0.625F), f, d);
  674.          this.c((double)((float)i - 0.25F + 1.0F - f1), (double)((float)i - 0.25F + 1.0F), (double)((float)j + 0.375F), (double)((float)j + 0.625F), (double)((float)k + 0.375F), (double)((float)k + 0.375F), f * 0.6F, d);
  675.          this.c((double)((float)i - 0.25F + 1.0F - f1), (double)((float)i - 0.25F + 1.0F), (double)((float)j + 0.625F), (double)((float)j + 0.375F), (double)((float)k + 0.625F), (double)((float)k + 0.625F), f * 0.6F, d);
  676.       }
  677.  
  678.       this.g = 0;
  679.       this.h = 0;
  680.       this.i = 0;
  681.       this.j = 0;
  682.       this.k = 0;
  683.       this.l = 0;
  684.       block.a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
  685.       return true;
  686.    }
  687.  
  688.    public boolean e(uu block, int i, int j, int k) {
  689.       int l = this.c.e(i, j, k);
  690.       int i1 = l & 7;
  691.       boolean flag = (l & 8) > 0;
  692.       nw tessellator = nw.a;
  693.       boolean flag1 = this.d >= 0;
  694.       if(!flag1) {
  695.          this.d = uu.x.bm;
  696.       }
  697.  
  698.       float f = 0.25F;
  699.       float f1 = 0.1875F;
  700.       float f2 = 0.1875F;
  701.       if(i1 == 5) {
  702.          block.a(0.5F - f1, 0.0F, 0.5F - f, 0.5F + f1, f2, 0.5F + f);
  703.       } else if(i1 == 6) {
  704.          block.a(0.5F - f, 0.0F, 0.5F - f1, 0.5F + f, f2, 0.5F + f1);
  705.       } else if(i1 == 4) {
  706.          block.a(0.5F - f1, 0.5F - f, 1.0F - f2, 0.5F + f1, 0.5F + f, 1.0F);
  707.       } else if(i1 == 3) {
  708.          block.a(0.5F - f1, 0.5F - f, 0.0F, 0.5F + f1, 0.5F + f, f2);
  709.       } else if(i1 == 2) {
  710.          block.a(1.0F - f2, 0.5F - f, 0.5F - f1, 1.0F, 0.5F + f, 0.5F + f1);
  711.       } else if(i1 == 1) {
  712.          block.a(0.0F, 0.5F - f, 0.5F - f1, f2, 0.5F + f, 0.5F + f1);
  713.       }
  714.  
  715.       this.l(block, i, j, k);
  716.       if(!flag1) {
  717.          this.d = -1;
  718.       }
  719.  
  720.       float f3 = block.d(this.c, i, j, k);
  721.       if(uu.s[block.bn] > 0) {
  722.          f3 = 1.0F;
  723.       }
  724.  
  725.       tessellator.a(f3, f3, f3);
  726.       int j1 = block.a(0);
  727.       if(this.d >= 0) {
  728.          j1 = this.d;
  729.       }
  730.  
  731.       int k1 = (j1 & 15) << 4;
  732.       int l1 = j1 & 240;
  733.       float f4 = (float)k1 / 256.0F;
  734.       float f5 = ((float)k1 + 15.99F) / 256.0F;
  735.       float f6 = (float)l1 / 256.0F;
  736.       float f7 = ((float)l1 + 15.99F) / 256.0F;
  737.       bt[] avec3d = new bt[8];
  738.       float f8 = 0.0625F;
  739.       float f9 = 0.0625F;
  740.       float f10 = 0.625F;
  741.       avec3d[0] = bt.b((double)(-f8), 0.0D, (double)(-f9));
  742.       avec3d[1] = bt.b((double)f8, 0.0D, (double)(-f9));
  743.       avec3d[2] = bt.b((double)f8, 0.0D, (double)f9);
  744.       avec3d[3] = bt.b((double)(-f8), 0.0D, (double)f9);
  745.       avec3d[4] = bt.b((double)(-f8), (double)f10, (double)(-f9));
  746.       avec3d[5] = bt.b((double)f8, (double)f10, (double)(-f9));
  747.       avec3d[6] = bt.b((double)f8, (double)f10, (double)f9);
  748.       avec3d[7] = bt.b((double)(-f8), (double)f10, (double)f9);
  749.  
  750.       for(int vec3d = 0; vec3d < 8; ++vec3d) {
  751.          if(flag) {
  752.             avec3d[vec3d].c -= 0.0625D;
  753.             avec3d[vec3d].a(0.6981317F);
  754.          } else {
  755.             avec3d[vec3d].c += 0.0625D;
  756.             avec3d[vec3d].a(-0.6981317F);
  757.          }
  758.  
  759.          if(i1 == 6) {
  760.             avec3d[vec3d].b(1.570796F);
  761.          }
  762.  
  763.          if(i1 < 5) {
  764.             avec3d[vec3d].b -= 0.375D;
  765.             avec3d[vec3d].a(1.570796F);
  766.             if(i1 == 4) {
  767.                avec3d[vec3d].b(0.0F);
  768.             }
  769.  
  770.             if(i1 == 3) {
  771.                avec3d[vec3d].b(3.141593F);
  772.             }
  773.  
  774.             if(i1 == 2) {
  775.                avec3d[vec3d].b(1.570796F);
  776.             }
  777.  
  778.             if(i1 == 1) {
  779.                avec3d[vec3d].b(-1.570796F);
  780.             }
  781.  
  782.             avec3d[vec3d].a += (double)i + 0.5D;
  783.             avec3d[vec3d].b += (double)((float)j + 0.5F);
  784.             avec3d[vec3d].c += (double)k + 0.5D;
  785.          } else {
  786.             avec3d[vec3d].a += (double)i + 0.5D;
  787.             avec3d[vec3d].b += (double)((float)j + 0.125F);
  788.             avec3d[vec3d].c += (double)k + 0.5D;
  789.          }
  790.       }
  791.  
  792.       bt var30 = null;
  793.       bt vec3d1 = null;
  794.       bt vec3d2 = null;
  795.       bt vec3d3 = null;
  796.  
  797.       for(int j2 = 0; j2 < 6; ++j2) {
  798.          if(j2 == 0) {
  799.             f4 = (float)(k1 + 7) / 256.0F;
  800.             f5 = ((float)(k1 + 9) - 0.01F) / 256.0F;
  801.             f6 = (float)(l1 + 6) / 256.0F;
  802.             f7 = ((float)(l1 + 8) - 0.01F) / 256.0F;
  803.          } else if(j2 == 2) {
  804.             f4 = (float)(k1 + 7) / 256.0F;
  805.             f5 = ((float)(k1 + 9) - 0.01F) / 256.0F;
  806.             f6 = (float)(l1 + 6) / 256.0F;
  807.             f7 = ((float)(l1 + 16) - 0.01F) / 256.0F;
  808.          }
  809.  
  810.          if(j2 == 0) {
  811.             var30 = avec3d[0];
  812.             vec3d1 = avec3d[1];
  813.             vec3d2 = avec3d[2];
  814.             vec3d3 = avec3d[3];
  815.          } else if(j2 == 1) {
  816.             var30 = avec3d[7];
  817.             vec3d1 = avec3d[6];
  818.             vec3d2 = avec3d[5];
  819.             vec3d3 = avec3d[4];
  820.          } else if(j2 == 2) {
  821.             var30 = avec3d[1];
  822.             vec3d1 = avec3d[0];
  823.             vec3d2 = avec3d[4];
  824.             vec3d3 = avec3d[5];
  825.          } else if(j2 == 3) {
  826.             var30 = avec3d[2];
  827.             vec3d1 = avec3d[1];
  828.             vec3d2 = avec3d[5];
  829.             vec3d3 = avec3d[6];
  830.          } else if(j2 == 4) {
  831.             var30 = avec3d[3];
  832.             vec3d1 = avec3d[2];
  833.             vec3d2 = avec3d[6];
  834.             vec3d3 = avec3d[7];
  835.          } else if(j2 == 5) {
  836.             var30 = avec3d[0];
  837.             vec3d1 = avec3d[3];
  838.             vec3d2 = avec3d[7];
  839.             vec3d3 = avec3d[4];
  840.          }
  841.  
  842.          tessellator.a(var30.a, var30.b, var30.c, (double)f4, (double)f7);
  843.          tessellator.a(vec3d1.a, vec3d1.b, vec3d1.c, (double)f5, (double)f7);
  844.          tessellator.a(vec3d2.a, vec3d2.b, vec3d2.c, (double)f5, (double)f6);
  845.          tessellator.a(vec3d3.a, vec3d3.b, vec3d3.c, (double)f4, (double)f6);
  846.       }
  847.  
  848.       return true;
  849.    }
  850.  
  851.    public boolean f(uu block, int i, int j, int k) {
  852.       nw tessellator = nw.a;
  853.       int l = block.a(0);
  854.       if(this.d >= 0) {
  855.          l = this.d;
  856.       }
  857.  
  858.       float f = block.d(this.c, i, j, k);
  859.       tessellator.a(f, f, f);
  860.       int i1 = (l & 15) << 4;
  861.       int j1 = l & 240;
  862.       double d = (double)((float)i1 / 256.0F);
  863.       double d1 = (double)(((float)i1 + 15.99F) / 256.0F);
  864.       double d2 = (double)((float)j1 / 256.0F);
  865.       double d3 = (double)(((float)j1 + 15.99F) / 256.0F);
  866.       float f1 = 1.4F;
  867.       double d7;
  868.       double d9;
  869.       double d11;
  870.       double d13;
  871.       double d15;
  872.       double d17;
  873.       double d19;
  874.       if(!this.c.h(i, j - 1, k) && !uu.as.c(this.c, i, j - 1, k)) {
  875.          float var46 = 0.2F;
  876.          float f3 = 0.0625F;
  877.          if((i + j + k & 1) == 1) {
  878.             d = (double)((float)i1 / 256.0F);
  879.             d1 = (double)(((float)i1 + 15.99F) / 256.0F);
  880.             d2 = (double)((float)(j1 + 16) / 256.0F);
  881.             d3 = (double)(((float)j1 + 15.99F + 16.0F) / 256.0F);
  882.          }
  883.  
  884.          if((i / 2 + j / 2 + k / 2 & 1) == 1) {
  885.             d7 = d1;
  886.             d1 = d;
  887.             d = d7;
  888.          }
  889.  
  890.          if(uu.as.c(this.c, i - 1, j, k)) {
  891.             tessellator.a((double)((float)i + var46), (double)((float)j + f1 + f3), (double)(k + 1), d1, d2);
  892.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 1), d1, d3);
  893.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 0), d, d3);
  894.             tessellator.a((double)((float)i + var46), (double)((float)j + f1 + f3), (double)(k + 0), d, d2);
  895.             tessellator.a((double)((float)i + var46), (double)((float)j + f1 + f3), (double)(k + 0), d, d2);
  896.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 0), d, d3);
  897.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 1), d1, d3);
  898.             tessellator.a((double)((float)i + var46), (double)((float)j + f1 + f3), (double)(k + 1), d1, d2);
  899.          }
  900.  
  901.          if(uu.as.c(this.c, i + 1, j, k)) {
  902.             tessellator.a((double)((float)(i + 1) - var46), (double)((float)j + f1 + f3), (double)(k + 0), d, d2);
  903.             tessellator.a((double)(i + 1 - 0), (double)((float)(j + 0) + f3), (double)(k + 0), d, d3);
  904.             tessellator.a((double)(i + 1 - 0), (double)((float)(j + 0) + f3), (double)(k + 1), d1, d3);
  905.             tessellator.a((double)((float)(i + 1) - var46), (double)((float)j + f1 + f3), (double)(k + 1), d1, d2);
  906.             tessellator.a((double)((float)(i + 1) - var46), (double)((float)j + f1 + f3), (double)(k + 1), d1, d2);
  907.             tessellator.a((double)(i + 1 - 0), (double)((float)(j + 0) + f3), (double)(k + 1), d1, d3);
  908.             tessellator.a((double)(i + 1 - 0), (double)((float)(j + 0) + f3), (double)(k + 0), d, d3);
  909.             tessellator.a((double)((float)(i + 1) - var46), (double)((float)j + f1 + f3), (double)(k + 0), d, d2);
  910.          }
  911.  
  912.          if(uu.as.c(this.c, i, j, k - 1)) {
  913.             tessellator.a((double)(i + 0), (double)((float)j + f1 + f3), (double)((float)k + var46), d1, d2);
  914.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 0), d1, d3);
  915.             tessellator.a((double)(i + 1), (double)((float)(j + 0) + f3), (double)(k + 0), d, d3);
  916.             tessellator.a((double)(i + 1), (double)((float)j + f1 + f3), (double)((float)k + var46), d, d2);
  917.             tessellator.a((double)(i + 1), (double)((float)j + f1 + f3), (double)((float)k + var46), d, d2);
  918.             tessellator.a((double)(i + 1), (double)((float)(j + 0) + f3), (double)(k + 0), d, d3);
  919.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 0), d1, d3);
  920.             tessellator.a((double)(i + 0), (double)((float)j + f1 + f3), (double)((float)k + var46), d1, d2);
  921.          }
  922.  
  923.          if(uu.as.c(this.c, i, j, k + 1)) {
  924.             tessellator.a((double)(i + 1), (double)((float)j + f1 + f3), (double)((float)(k + 1) - var46), d, d2);
  925.             tessellator.a((double)(i + 1), (double)((float)(j + 0) + f3), (double)(k + 1 - 0), d, d3);
  926.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 1 - 0), d1, d3);
  927.             tessellator.a((double)(i + 0), (double)((float)j + f1 + f3), (double)((float)(k + 1) - var46), d1, d2);
  928.             tessellator.a((double)(i + 0), (double)((float)j + f1 + f3), (double)((float)(k + 1) - var46), d1, d2);
  929.             tessellator.a((double)(i + 0), (double)((float)(j + 0) + f3), (double)(k + 1 - 0), d1, d3);
  930.             tessellator.a((double)(i + 1), (double)((float)(j + 0) + f3), (double)(k + 1 - 0), d, d3);
  931.             tessellator.a((double)(i + 1), (double)((float)j + f1 + f3), (double)((float)(k + 1) - var46), d, d2);
  932.          }
  933.  
  934.          if(uu.as.c(this.c, i, j + 1, k)) {
  935.             d7 = (double)i + 0.5D + 0.5D;
  936.             d9 = (double)i + 0.5D - 0.5D;
  937.             d11 = (double)k + 0.5D + 0.5D;
  938.             d13 = (double)k + 0.5D - 0.5D;
  939.             d15 = (double)i + 0.5D - 0.5D;
  940.             d17 = (double)i + 0.5D + 0.5D;
  941.             d19 = (double)k + 0.5D - 0.5D;
  942.             double d20 = (double)k + 0.5D + 0.5D;
  943.             double d21 = (double)((float)i1 / 256.0F);
  944.             double d22 = (double)(((float)i1 + 15.99F) / 256.0F);
  945.             double d23 = (double)((float)j1 / 256.0F);
  946.             double d24 = (double)(((float)j1 + 15.99F) / 256.0F);
  947.             ++j;
  948.             float f4 = -0.2F;
  949.             if((i + j + k & 1) == 0) {
  950.                tessellator.a(d15, (double)((float)j + f4), (double)(k + 0), d22, d23);
  951.                tessellator.a(d7, (double)(j + 0), (double)(k + 0), d22, d24);
  952.                tessellator.a(d7, (double)(j + 0), (double)(k + 1), d21, d24);
  953.                tessellator.a(d15, (double)((float)j + f4), (double)(k + 1), d21, d23);
  954.                d21 = (double)((float)i1 / 256.0F);
  955.                d22 = (double)(((float)i1 + 15.99F) / 256.0F);
  956.                d23 = (double)((float)(j1 + 16) / 256.0F);
  957.                d24 = (double)(((float)j1 + 15.99F + 16.0F) / 256.0F);
  958.                tessellator.a(d17, (double)((float)j + f4), (double)(k + 1), d22, d23);
  959.                tessellator.a(d9, (double)(j + 0), (double)(k + 1), d22, d24);
  960.                tessellator.a(d9, (double)(j + 0), (double)(k + 0), d21, d24);
  961.                tessellator.a(d17, (double)((float)j + f4), (double)(k + 0), d21, d23);
  962.             } else {
  963.                tessellator.a((double)(i + 0), (double)((float)j + f4), d20, d22, d23);
  964.                tessellator.a((double)(i + 0), (double)(j + 0), d13, d22, d24);
  965.                tessellator.a((double)(i + 1), (double)(j + 0), d13, d21, d24);
  966.                tessellator.a((double)(i + 1), (double)((float)j + f4), d20, d21, d23);
  967.                d21 = (double)((float)i1 / 256.0F);
  968.                d22 = (double)(((float)i1 + 15.99F) / 256.0F);
  969.                d23 = (double)((float)(j1 + 16) / 256.0F);
  970.                d24 = (double)(((float)j1 + 15.99F + 16.0F) / 256.0F);
  971.                tessellator.a((double)(i + 1), (double)((float)j + f4), d19, d22, d23);
  972.                tessellator.a((double)(i + 1), (double)(j + 0), d11, d22, d24);
  973.                tessellator.a((double)(i + 0), (double)(j + 0), d11, d21, d24);
  974.                tessellator.a((double)(i + 0), (double)((float)j + f4), d19, d21, d23);
  975.             }
  976.          }
  977.       } else {
  978.          double f2 = (double)i + 0.5D + 0.2D;
  979.          d7 = (double)i + 0.5D - 0.2D;
  980.          d9 = (double)k + 0.5D + 0.2D;
  981.          d11 = (double)k + 0.5D - 0.2D;
  982.          d13 = (double)i + 0.5D - 0.3D;
  983.          d15 = (double)i + 0.5D + 0.3D;
  984.          d17 = (double)k + 0.5D - 0.3D;
  985.          d19 = (double)k + 0.5D + 0.3D;
  986.          tessellator.a(d13, (double)((float)j + f1), (double)(k + 1), d1, d2);
  987.          tessellator.a(f2, (double)(j + 0), (double)(k + 1), d1, d3);
  988.          tessellator.a(f2, (double)(j + 0), (double)(k + 0), d, d3);
  989.          tessellator.a(d13, (double)((float)j + f1), (double)(k + 0), d, d2);
  990.          tessellator.a(d15, (double)((float)j + f1), (double)(k + 0), d1, d2);
  991.          tessellator.a(d7, (double)(j + 0), (double)(k + 0), d1, d3);
  992.          tessellator.a(d7, (double)(j + 0), (double)(k + 1), d, d3);
  993.          tessellator.a(d15, (double)((float)j + f1), (double)(k + 1), d, d2);
  994.          d = (double)((float)i1 / 256.0F);
  995.          d1 = (double)(((float)i1 + 15.99F) / 256.0F);
  996.          d2 = (double)((float)(j1 + 16) / 256.0F);
  997.          d3 = (double)(((float)j1 + 15.99F + 16.0F) / 256.0F);
  998.          tessellator.a((double)(i + 1), (double)((float)j + f1), d19, d1, d2);
  999.          tessellator.a((double)(i + 1), (double)(j + 0), d11, d1, d3);
  1000.          tessellator.a((double)(i + 0), (double)(j + 0), d11, d, d3);
  1001.          tessellator.a((double)(i + 0), (double)((float)j + f1), d19, d, d2);
  1002.          tessellator.a((double)(i + 0), (double)((float)j + f1), d17, d1, d2);
  1003.          tessellator.a((double)(i + 0), (double)(j + 0), d9, d1, d3);
  1004.          tessellator.a((double)(i + 1), (double)(j + 0), d9, d, d3);
  1005.          tessellator.a((double)(i + 1), (double)((float)j + f1), d17, d, d2);
  1006.          f2 = (double)i + 0.5D - 0.5D;
  1007.          d7 = (double)i + 0.5D + 0.5D;
  1008.          d9 = (double)k + 0.5D - 0.5D;
  1009.          d11 = (double)k + 0.5D + 0.5D;
  1010.          d13 = (double)i + 0.5D - 0.4D;
  1011.          d15 = (double)i + 0.5D + 0.4D;
  1012.          d17 = (double)k + 0.5D - 0.4D;
  1013.          d19 = (double)k + 0.5D + 0.4D;
  1014.          tessellator.a(d13, (double)((float)j + f1), (double)(k + 0), d, d2);
  1015.          tessellator.a(f2, (double)(j + 0), (double)(k + 0), d, d3);
  1016.          tessellator.a(f2, (double)(j + 0), (double)(k + 1), d1, d3);
  1017.          tessellator.a(d13, (double)((float)j + f1), (double)(k + 1), d1, d2);
  1018.          tessellator.a(d15, (double)((float)j + f1), (double)(k + 1), d, d2);
  1019.          tessellator.a(d7, (double)(j + 0), (double)(k + 1), d, d3);
  1020.          tessellator.a(d7, (double)(j + 0), (double)(k + 0), d1, d3);
  1021.          tessellator.a(d15, (double)((float)j + f1), (double)(k + 0), d1, d2);
  1022.          d = (double)((float)i1 / 256.0F);
  1023.          d1 = (double)(((float)i1 + 15.99F) / 256.0F);
  1024.          d2 = (double)((float)j1 / 256.0F);
  1025.          d3 = (double)(((float)j1 + 15.99F) / 256.0F);
  1026.          tessellator.a((double)(i + 0), (double)((float)j + f1), d19, d, d2);
  1027.          tessellator.a((double)(i + 0), (double)(j + 0), d11, d, d3);
  1028.          tessellator.a((double)(i + 1), (double)(j + 0), d11, d1, d3);
  1029.          tessellator.a((double)(i + 1), (double)((float)j + f1), d19, d1, d2);
  1030.          tessellator.a((double)(i + 1), (double)((float)j + f1), d17, d, d2);
  1031.          tessellator.a((double)(i + 1), (double)(j + 0), d9, d, d3);
  1032.          tessellator.a((double)(i + 0), (double)(j + 0), d9, d1, d3);
  1033.          tessellator.a((double)(i + 0), (double)((float)j + f1), d17, d1, d2);
  1034.       }
  1035.  
  1036.       return true;
  1037.    }
  1038.  
  1039.    public static void setRedstoneColors(float[][] af) {
  1040.       if(af.length != 16) {
  1041.          throw new IllegalArgumentException("Must be 16 colors.");
  1042.       } else {
  1043.          for(int i = 0; i < af.length; ++i) {
  1044.             if(af[i].length != 3) {
  1045.                throw new IllegalArgumentException("Must be 3 channels in a color.");
  1046.             }
  1047.          }
  1048.  
  1049.          redstoneColors = af;
  1050.       }
  1051.    }
  1052.  
  1053.    public boolean g(uu block, int i, int j, int k) {
  1054.       nw tessellator = nw.a;
  1055.       int l = this.c.e(i, j, k);
  1056.       int i1 = block.a(1, l);
  1057.       if(this.d >= 0) {
  1058.          i1 = this.d;
  1059.       }
  1060.  
  1061.       float f = block.d(this.c, i, j, k);
  1062.       float[] af = redstoneColors[l];
  1063.       float f1 = af[0];
  1064.       float f2 = af[1];
  1065.       float f3 = af[2];
  1066.       tessellator.a(f * f1, f * f2, f * f3);
  1067.       int j1 = (i1 & 15) << 4;
  1068.       int k1 = i1 & 240;
  1069.       double d = (double)((float)j1 / 256.0F);
  1070.       double d1 = (double)(((float)j1 + 15.99F) / 256.0F);
  1071.       double d2 = (double)((float)k1 / 256.0F);
  1072.       double d3 = (double)(((float)k1 + 15.99F) / 256.0F);
  1073.       boolean flag = sm.e(this.c, i - 1, j, k, 1) || !this.c.h(i - 1, j, k) && sm.e(this.c, i - 1, j - 1, k, -1);
  1074.       boolean flag1 = sm.e(this.c, i + 1, j, k, 3) || !this.c.h(i + 1, j, k) && sm.e(this.c, i + 1, j - 1, k, -1);
  1075.       boolean flag2 = sm.e(this.c, i, j, k - 1, 2) || !this.c.h(i, j, k - 1) && sm.e(this.c, i, j - 1, k - 1, -1);
  1076.       boolean flag3 = sm.e(this.c, i, j, k + 1, 0) || !this.c.h(i, j, k + 1) && sm.e(this.c, i, j - 1, k + 1, -1);
  1077.       if(!this.c.h(i, j + 1, k)) {
  1078.          if(this.c.h(i - 1, j, k) && sm.e(this.c, i - 1, j + 1, k, -1)) {
  1079.             flag = true;
  1080.          }
  1081.  
  1082.          if(this.c.h(i + 1, j, k) && sm.e(this.c, i + 1, j + 1, k, -1)) {
  1083.             flag1 = true;
  1084.          }
  1085.  
  1086.          if(this.c.h(i, j, k - 1) && sm.e(this.c, i, j + 1, k - 1, -1)) {
  1087.             flag2 = true;
  1088.          }
  1089.  
  1090.          if(this.c.h(i, j, k + 1) && sm.e(this.c, i, j + 1, k + 1, -1)) {
  1091.             flag3 = true;
  1092.          }
  1093.       }
  1094.  
  1095.       float f4 = (float)(i + 0);
  1096.       float f5 = (float)(i + 1);
  1097.       float f6 = (float)(k + 0);
  1098.       float f7 = (float)(k + 1);
  1099.       byte byte0 = 0;
  1100.       if((flag || flag1) && !flag2 && !flag3) {
  1101.          byte0 = 1;
  1102.       }
  1103.  
  1104.       if((flag2 || flag3) && !flag1 && !flag) {
  1105.          byte0 = 2;
  1106.       }
  1107.  
  1108.       if(byte0 != 0) {
  1109.          d = (double)((float)(j1 + 16) / 256.0F);
  1110.          d1 = (double)(((float)(j1 + 16) + 15.99F) / 256.0F);
  1111.          d2 = (double)((float)k1 / 256.0F);
  1112.          d3 = (double)(((float)k1 + 15.99F) / 256.0F);
  1113.       }
  1114.  
  1115.       if(byte0 == 0) {
  1116.          if(flag1 || flag2 || flag3 || flag) {
  1117.             if(!flag) {
  1118.                f4 += 0.3125F;
  1119.             }
  1120.  
  1121.             if(!flag) {
  1122.                d += 0.01953125D;
  1123.             }
  1124.  
  1125.             if(!flag1) {
  1126.                f5 -= 0.3125F;
  1127.             }
  1128.  
  1129.             if(!flag1) {
  1130.                d1 -= 0.01953125D;
  1131.             }
  1132.  
  1133.             if(!flag2) {
  1134.                f6 += 0.3125F;
  1135.             }
  1136.  
  1137.             if(!flag2) {
  1138.                d2 += 0.01953125D;
  1139.             }
  1140.  
  1141.             if(!flag3) {
  1142.                f7 -= 0.3125F;
  1143.             }
  1144.  
  1145.             if(!flag3) {
  1146.                d3 -= 0.01953125D;
  1147.             }
  1148.          }
  1149.  
  1150.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f7, d1, d3);
  1151.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f6, d1, d2);
  1152.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f6, d, d2);
  1153.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f7, d, d3);
  1154.          tessellator.a(f, f, f);
  1155.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f7, d1, d3 + 0.0625D);
  1156.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f6, d1, d2 + 0.0625D);
  1157.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f6, d, d2 + 0.0625D);
  1158.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f7, d, d3 + 0.0625D);
  1159.       } else if(byte0 == 1) {
  1160.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f7, d1, d3);
  1161.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f6, d1, d2);
  1162.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f6, d, d2);
  1163.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f7, d, d3);
  1164.          tessellator.a(f, f, f);
  1165.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f7, d1, d3 + 0.0625D);
  1166.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f6, d1, d2 + 0.0625D);
  1167.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f6, d, d2 + 0.0625D);
  1168.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f7, d, d3 + 0.0625D);
  1169.       } else if(byte0 == 2) {
  1170.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f7, d1, d3);
  1171.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f6, d, d3);
  1172.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f6, d, d2);
  1173.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f7, d1, d2);
  1174.          tessellator.a(f, f, f);
  1175.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f7, d1, d3 + 0.0625D);
  1176.          tessellator.a((double)f5, (double)((float)j + 0.015625F), (double)f6, d, d3 + 0.0625D);
  1177.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f6, d, d2 + 0.0625D);
  1178.          tessellator.a((double)f4, (double)((float)j + 0.015625F), (double)f7, d1, d2 + 0.0625D);
  1179.       }
  1180.  
  1181.       if(!this.c.h(i, j + 1, k)) {
  1182.          double d4 = (double)((float)(j1 + 16) / 256.0F);
  1183.          double d5 = (double)(((float)(j1 + 16) + 15.99F) / 256.0F);
  1184.          double d6 = (double)((float)k1 / 256.0F);
  1185.          double d7 = (double)(((float)k1 + 15.99F) / 256.0F);
  1186.          if(this.c.h(i - 1, j, k) && this.c.a(i - 1, j + 1, k) == uu.aw.bn) {
  1187.             tessellator.a(f * f1, f * f2, f * f3);
  1188.             tessellator.a((double)((float)i + 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 1), d5, d6);
  1189.             tessellator.a((double)((float)i + 0.015625F), (double)(j + 0), (double)(k + 1), d4, d6);
  1190.             tessellator.a((double)((float)i + 0.015625F), (double)(j + 0), (double)(k + 0), d4, d7);
  1191.             tessellator.a((double)((float)i + 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 0), d5, d7);
  1192.             tessellator.a(f, f, f);
  1193.             tessellator.a((double)((float)i + 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 1), d5, d6 + 0.0625D);
  1194.             tessellator.a((double)((float)i + 0.015625F), (double)(j + 0), (double)(k + 1), d4, d6 + 0.0625D);
  1195.             tessellator.a((double)((float)i + 0.015625F), (double)(j + 0), (double)(k + 0), d4, d7 + 0.0625D);
  1196.             tessellator.a((double)((float)i + 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 0), d5, d7 + 0.0625D);
  1197.          }
  1198.  
  1199.          if(this.c.h(i + 1, j, k) && this.c.a(i + 1, j + 1, k) == uu.aw.bn) {
  1200.             tessellator.a(f * f1, f * f2, f * f3);
  1201.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)(j + 0), (double)(k + 1), d4, d7);
  1202.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 1), d5, d7);
  1203.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 0), d5, d6);
  1204.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)(j + 0), (double)(k + 0), d4, d6);
  1205.             tessellator.a(f, f, f);
  1206.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)(j + 0), (double)(k + 1), d4, d7 + 0.0625D);
  1207.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 1), d5, d7 + 0.0625D);
  1208.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)((float)(j + 1) + 0.021875F), (double)(k + 0), d5, d6 + 0.0625D);
  1209.             tessellator.a((double)((float)(i + 1) - 0.015625F), (double)(j + 0), (double)(k + 0), d4, d6 + 0.0625D);
  1210.          }
  1211.  
  1212.          if(this.c.h(i, j, k - 1) && this.c.a(i, j + 1, k - 1) == uu.aw.bn) {
  1213.             tessellator.a(f * f1, f * f2, f * f3);
  1214.             tessellator.a((double)(i + 1), (double)(j + 0), (double)((float)k + 0.015625F), d4, d7);
  1215.             tessellator.a((double)(i + 1), (double)((float)(j + 1) + 0.021875F), (double)((float)k + 0.015625F), d5, d7);
  1216.             tessellator.a((double)(i + 0), (double)((float)(j + 1) + 0.021875F), (double)((float)k + 0.015625F), d5, d6);
  1217.             tessellator.a((double)(i + 0), (double)(j + 0), (double)((float)k + 0.015625F), d4, d6);
  1218.             tessellator.a(f, f, f);
  1219.             tessellator.a((double)(i + 1), (double)(j + 0), (double)((float)k + 0.015625F), d4, d7 + 0.0625D);
  1220.             tessellator.a((double)(i + 1), (double)((float)(j + 1) + 0.021875F), (double)((float)k + 0.015625F), d5, d7 + 0.0625D);
  1221.             tessellator.a((double)(i + 0), (double)((float)(j + 1) + 0.021875F), (double)((float)k + 0.015625F), d5, d6 + 0.0625D);
  1222.             tessellator.a((double)(i + 0), (double)(j + 0), (double)((float)k + 0.015625F), d4, d6 + 0.0625D);
  1223.          }
  1224.  
  1225.          if(this.c.h(i, j, k + 1) && this.c.a(i, j + 1, k + 1) == uu.aw.bn) {
  1226.             tessellator.a(f * f1, f * f2, f * f3);
  1227.             tessellator.a((double)(i + 1), (double)((float)(j + 1) + 0.021875F), (double)((float)(k + 1) - 0.015625F), d5, d6);
  1228.             tessellator.a((double)(i + 1), (double)(j + 0), (double)((float)(k + 1) - 0.015625F), d4, d6);
  1229.             tessellator.a((double)(i + 0), (double)(j + 0), (double)((float)(k + 1) - 0.015625F), d4, d7);
  1230.             tessellator.a((double)(i + 0), (double)((float)(j + 1) + 0.021875F), (double)((float)(k + 1) - 0.015625F), d5, d7);
  1231.             tessellator.a(f, f, f);
  1232.             tessellator.a((double)(i + 1), (double)((float)(j + 1) + 0.021875F), (double)((float)(k + 1) - 0.015625F), d5, d6 + 0.0625D);
  1233.             tessellator.a((double)(i + 1), (double)(j + 0), (double)((float)(k + 1) - 0.015625F), d4, d6 + 0.0625D);
  1234.             tessellator.a((double)(i + 0), (double)(j + 0), (double)((float)(k + 1) - 0.015625F), d4, d7 + 0.0625D);
  1235.             tessellator.a((double)(i + 0), (double)((float)(j + 1) + 0.021875F), (double)((float)(k + 1) - 0.015625F), d5, d7 + 0.0625D);
  1236.          }
  1237.       }
  1238.  
  1239.       return true;
  1240.    }
  1241.  
  1242.    public boolean a(pc blockrail, int i, int j, int k) {
  1243.       nw tessellator = nw.a;
  1244.       int l = this.c.e(i, j, k);
  1245.       int i1 = blockrail.a(0, l);
  1246.       if(this.d >= 0) {
  1247.          i1 = this.d;
  1248.       }
  1249.  
  1250.       if(blockrail.i()) {
  1251.          l &= 7;
  1252.       }
  1253.  
  1254.       float f = blockrail.d(this.c, i, j, k);
  1255.       tessellator.a(f, f, f);
  1256.       int j1 = (i1 & 15) << 4;
  1257.       int k1 = i1 & 240;
  1258.       double d = (double)((float)j1 / 256.0F);
  1259.       double d1 = (double)(((float)j1 + 15.99F) / 256.0F);
  1260.       double d2 = (double)((float)k1 / 256.0F);
  1261.       double d3 = (double)(((float)k1 + 15.99F) / 256.0F);
  1262.       float f1 = 0.0625F;
  1263.       float f2 = (float)(i + 1);
  1264.       float f3 = (float)(i + 1);
  1265.       float f4 = (float)(i + 0);
  1266.       float f5 = (float)(i + 0);
  1267.       float f6 = (float)(k + 0);
  1268.       float f7 = (float)(k + 1);
  1269.       float f8 = (float)(k + 1);
  1270.       float f9 = (float)(k + 0);
  1271.       float f10 = (float)j + f1;
  1272.       float f11 = (float)j + f1;
  1273.       float f12 = (float)j + f1;
  1274.       float f13 = (float)j + f1;
  1275.       if(l != 1 && l != 2 && l != 3 && l != 7) {
  1276.          if(l == 8) {
  1277.             f2 = f3 = (float)(i + 0);
  1278.             f4 = f5 = (float)(i + 1);
  1279.             f6 = f9 = (float)(k + 1);
  1280.             f7 = f8 = (float)(k + 0);
  1281.          } else if(l == 9) {
  1282.             f2 = f5 = (float)(i + 0);
  1283.             f3 = f4 = (float)(i + 1);
  1284.             f6 = f7 = (float)(k + 0);
  1285.             f8 = f9 = (float)(k + 1);
  1286.          }
  1287.       } else {
  1288.          f2 = f5 = (float)(i + 1);
  1289.          f3 = f4 = (float)(i + 0);
  1290.          f6 = f7 = (float)(k + 1);
  1291.          f8 = f9 = (float)(k + 0);
  1292.       }
  1293.  
  1294.       if(l != 2 && l != 4) {
  1295.          if(l == 3 || l == 5) {
  1296.             ++f11;
  1297.             ++f12;
  1298.          }
  1299.       } else {
  1300.          ++f10;
  1301.          ++f13;
  1302.       }
  1303.  
  1304.       tessellator.a((double)f2, (double)f10, (double)f6, d1, d2);
  1305.       tessellator.a((double)f3, (double)f11, (double)f7, d1, d3);
  1306.       tessellator.a((double)f4, (double)f12, (double)f8, d, d3);
  1307.       tessellator.a((double)f5, (double)f13, (double)f9, d, d2);
  1308.       tessellator.a((double)f5, (double)f13, (double)f9, d, d2);
  1309.       tessellator.a((double)f4, (double)f12, (double)f8, d, d3);
  1310.       tessellator.a((double)f3, (double)f11, (double)f7, d1, d3);
  1311.       tessellator.a((double)f2, (double)f10, (double)f6, d1, d2);
  1312.       return true;
  1313.    }
  1314.  
  1315.    public boolean h(uu block, int i, int j, int k) {
  1316.       nw tessellator = nw.a;
  1317.       int l = block.a(0);
  1318.       if(this.d >= 0) {
  1319.          l = this.d;
  1320.       }
  1321.  
  1322.       float f = block.d(this.c, i, j, k);
  1323.       tessellator.a(f, f, f);
  1324.       int i1 = (l & 15) << 4;
  1325.       int j1 = l & 240;
  1326.       double d = (double)((float)i1 / 256.0F);
  1327.       double d1 = (double)(((float)i1 + 15.99F) / 256.0F);
  1328.       double d2 = (double)((float)j1 / 256.0F);
  1329.       double d3 = (double)(((float)j1 + 15.99F) / 256.0F);
  1330.       int k1 = this.c.e(i, j, k);
  1331.       float f1 = 0.0F;
  1332.       float f2 = 0.05F;
  1333.       if(k1 == 5) {
  1334.          tessellator.a((double)((float)i + f2), (double)((float)(j + 1) + f1), (double)((float)(k + 1) + f1), d, d2);
  1335.          tessellator.a((double)((float)i + f2), (double)((float)(j + 0) - f1), (double)((float)(k + 1) + f1), d, d3);
  1336.          tessellator.a((double)((float)i + f2), (double)((float)(j + 0) - f1), (double)((float)(k + 0) - f1), d1, d3);
  1337.          tessellator.a((double)((float)i + f2), (double)((float)(j + 1) + f1), (double)((float)(k + 0) - f1), d1, d2);
  1338.       }
  1339.  
  1340.       if(k1 == 4) {
  1341.          tessellator.a((double)((float)(i + 1) - f2), (double)((float)(j + 0) - f1), (double)((float)(k + 1) + f1), d1, d3);
  1342.          tessellator.a((double)((float)(i + 1) - f2), (double)((float)(j + 1) + f1), (double)((float)(k + 1) + f1), d1, d2);
  1343.          tessellator.a((double)((float)(i + 1) - f2), (double)((float)(j + 1) + f1), (double)((float)(k + 0) - f1), d, d2);
  1344.          tessellator.a((double)((float)(i + 1) - f2), (double)((float)(j + 0) - f1), (double)((float)(k + 0) - f1), d, d3);
  1345.       }
  1346.  
  1347.       if(k1 == 3) {
  1348.          tessellator.a((double)((float)(i + 1) + f1), (double)((float)(j + 0) - f1), (double)((float)k + f2), d1, d3);
  1349.          tessellator.a((double)((float)(i + 1) + f1), (double)((float)(j + 1) + f1), (double)((float)k + f2), d1, d2);
  1350.          tessellator.a((double)((float)(i + 0) - f1), (double)((float)(j + 1) + f1), (double)((float)k + f2), d, d2);
  1351.          tessellator.a((double)((float)(i + 0) - f1), (double)((float)(j + 0) - f1), (double)((float)k + f2), d, d3);
  1352.       }
  1353.  
  1354.       if(k1 == 2) {
  1355.          tessellator.a((double)((float)(i + 1) + f1), (double)((float)(j + 1) + f1), (double)((float)(k + 1) - f2), d, d2);
  1356.          tessellator.a((double)((float)(i + 1) + f1), (double)((float)(j + 0) - f1), (double)((float)(k + 1) - f2), d, d3);
  1357.          tessellator.a((double)((float)(i + 0) - f1), (double)((float)(j + 0) - f1), (double)((float)(k + 1) - f2), d1, d3);
  1358.          tessellator.a((double)((float)(i + 0) - f1), (double)((float)(j + 1) + f1), (double)((float)(k + 1) - f2), d1, d2);
  1359.       }
  1360.  
  1361.       return true;
  1362.    }
  1363.  
  1364.    public boolean i(uu block, int i, int j, int k) {
  1365.       nw tessellator = nw.a;
  1366.       float f = block.d(this.c, i, j, k);
  1367.       int l = block.b(this.c, i, j, k);
  1368.       float f1 = (float)(l >> 16 & 255) / 255.0F;
  1369.       float f2 = (float)(l >> 8 & 255) / 255.0F;
  1370.       float f3 = (float)(l & 255) / 255.0F;
  1371.       if(px.a) {
  1372.          float d = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F;
  1373.          float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F;
  1374.          float d1 = (f1 * 30.0F + f3 * 70.0F) / 100.0F;
  1375.          f1 = d;
  1376.          f2 = f5;
  1377.          f3 = d1;
  1378.       }
  1379.  
  1380.       tessellator.a(f * f1, f * f2, f * f3);
  1381.       double d1 = (double)i;
  1382.       double d11 = (double)j;
  1383.       double d2 = (double)k;
  1384.       if(block == uu.Y) {
  1385.          long l1 = (long)(i * 3129871) ^ (long)k * 116129781L ^ (long)j;
  1386.          l1 = l1 * l1 * 42317861L + l1 * 11L;
  1387.          d1 += ((double)((float)(l1 >> 16 & 15L) / 15.0F) - 0.5D) * 0.5D;
  1388.          d11 += ((double)((float)(l1 >> 20 & 15L) / 15.0F) - 1.0D) * 0.2D;
  1389.          d2 += ((double)((float)(l1 >> 24 & 15L) / 15.0F) - 0.5D) * 0.5D;
  1390.       }
  1391.  
  1392.       this.a(block, this.c.e(i, j, k), d1, d11, d2);
  1393.       return true;
  1394.    }
  1395.  
  1396.    public boolean j(uu block, int i, int j, int k) {
  1397.       nw tessellator = nw.a;
  1398.       float f = block.d(this.c, i, j, k);
  1399.       tessellator.a(f, f, f);
  1400.       this.b(block, this.c.e(i, j, k), (double)i, (double)j - 0.0625D, (double)k);
  1401.       return true;
  1402.    }
  1403.  
  1404.    public void a(uu block, double d, double d1, double d2, double d3, double d4) {
  1405.       nw tessellator = nw.a;
  1406.       int i = block.a(0);
  1407.       if(this.d >= 0) {
  1408.          i = this.d;
  1409.       }
  1410.  
  1411.       int j = (i & 15) << 4;
  1412.       int k = i & 240;
  1413.       float f = (float)j / 256.0F;
  1414.       float f1 = ((float)j + 15.99F) / 256.0F;
  1415.       float f2 = (float)k / 256.0F;
  1416.       float f3 = ((float)k + 15.99F) / 256.0F;
  1417.       double d5 = (double)f + 0.02734375D;
  1418.       double d6 = (double)f2 + 0.0234375D;
  1419.       double d7 = (double)f + 0.03515625D;
  1420.       double d8 = (double)f2 + 0.03125D;
  1421.       d += 0.5D;
  1422.       d2 += 0.5D;
  1423.       double d9 = d - 0.5D;
  1424.       double d10 = d + 0.5D;
  1425.       double d11 = d2 - 0.5D;
  1426.       double d12 = d2 + 0.5D;
  1427.       double d13 = 0.0625D;
  1428.       double d14 = 0.625D;
  1429.       tessellator.a(d + d3 * (1.0D - d14) - d13, d1 + d14, d2 + d4 * (1.0D - d14) - d13, d5, d6);
  1430.       tessellator.a(d + d3 * (1.0D - d14) - d13, d1 + d14, d2 + d4 * (1.0D - d14) + d13, d5, d8);
  1431.       tessellator.a(d + d3 * (1.0D - d14) + d13, d1 + d14, d2 + d4 * (1.0D - d14) + d13, d7, d8);
  1432.       tessellator.a(d + d3 * (1.0D - d14) + d13, d1 + d14, d2 + d4 * (1.0D - d14) - d13, d7, d6);
  1433.       tessellator.a(d - d13, d1 + 1.0D, d11, (double)f, (double)f2);
  1434.       tessellator.a(d - d13 + d3, d1 + 0.0D, d11 + d4, (double)f, (double)f3);
  1435.       tessellator.a(d - d13 + d3, d1 + 0.0D, d12 + d4, (double)f1, (double)f3);
  1436.       tessellator.a(d - d13, d1 + 1.0D, d12, (double)f1, (double)f2);
  1437.       tessellator.a(d + d13, d1 + 1.0D, d12, (double)f, (double)f2);
  1438.       tessellator.a(d + d3 + d13, d1 + 0.0D, d12 + d4, (double)f, (double)f3);
  1439.       tessellator.a(d + d3 + d13, d1 + 0.0D, d11 + d4, (double)f1, (double)f3);
  1440.       tessellator.a(d + d13, d1 + 1.0D, d11, (double)f1, (double)f2);
  1441.       tessellator.a(d9, d1 + 1.0D, d2 + d13, (double)f, (double)f2);
  1442.       tessellator.a(d9 + d3, d1 + 0.0D, d2 + d13 + d4, (double)f, (double)f3);
  1443.       tessellator.a(d10 + d3, d1 + 0.0D, d2 + d13 + d4, (double)f1, (double)f3);
  1444.       tessellator.a(d10, d1 + 1.0D, d2 + d13, (double)f1, (double)f2);
  1445.       tessellator.a(d10, d1 + 1.0D, d2 - d13, (double)f, (double)f2);
  1446.       tessellator.a(d10 + d3, d1 + 0.0D, d2 - d13 + d4, (double)f, (double)f3);
  1447.       tessellator.a(d9 + d3, d1 + 0.0D, d2 - d13 + d4, (double)f1, (double)f3);
  1448.       tessellator.a(d9, d1 + 1.0D, d2 - d13, (double)f1, (double)f2);
  1449.    }
  1450.  
  1451.    public void a(uu block, int i, double d, double d1, double d2) {
  1452.       nw tessellator = nw.a;
  1453.       int j = block.a(0, i);
  1454.       if(this.textureNum != -1) {
  1455.          if(j / 256 != this.textureNum) {
  1456.             return;
  1457.          }
  1458.  
  1459.          j -= this.textureNum * 256;
  1460.       }
  1461.  
  1462.       if(this.d >= 0) {
  1463.          j = this.d;
  1464.       }
  1465.  
  1466.       int k = (j & 15) << 4;
  1467.       int l = j & 240;
  1468.       double d3 = (double)((float)k / 256.0F);
  1469.       double d4 = (double)(((float)k + 15.99F) / 256.0F);
  1470.       double d5 = (double)((float)l / 256.0F);
  1471.       double d6 = (double)(((float)l + 15.99F) / 256.0F);
  1472.       double d7 = d + 0.5D - 0.44999998807907104D;
  1473.       double d8 = d + 0.5D + 0.44999998807907104D;
  1474.       double d9 = d2 + 0.5D - 0.44999998807907104D;
  1475.       double d10 = d2 + 0.5D + 0.44999998807907104D;
  1476.       tessellator.a(d7, d1 + 1.0D, d9, d3, d5);
  1477.       tessellator.a(d7, d1 + 0.0D, d9, d3, d6);
  1478.       tessellator.a(d8, d1 + 0.0D, d10, d4, d6);
  1479.       tessellator.a(d8, d1 + 1.0D, d10, d4, d5);
  1480.       tessellator.a(d8, d1 + 1.0D, d10, d3, d5);
  1481.       tessellator.a(d8, d1 + 0.0D, d10, d3, d6);
  1482.       tessellator.a(d7, d1 + 0.0D, d9, d4, d6);
  1483.       tessellator.a(d7, d1 + 1.0D, d9, d4, d5);
  1484.       tessellator.a(d7, d1 + 1.0D, d10, d3, d5);
  1485.       tessellator.a(d7, d1 + 0.0D, d10, d3, d6);
  1486.       tessellator.a(d8, d1 + 0.0D, d9, d4, d6);
  1487.       tessellator.a(d8, d1 + 1.0D, d9, d4, d5);
  1488.       tessellator.a(d8, d1 + 1.0D, d9, d3, d5);
  1489.       tessellator.a(d8, d1 + 0.0D, d9, d3, d6);
  1490.       tessellator.a(d7, d1 + 0.0D, d10, d4, d6);
  1491.       tessellator.a(d7, d1 + 1.0D, d10, d4, d5);
  1492.    }
  1493.  
  1494.    public void b(uu block, int i, double d, double d1, double d2) {
  1495.       nw tessellator = nw.a;
  1496.       int j = block.a(0, i);
  1497.       if(this.textureNum != -1) {
  1498.          if(j / 256 != this.textureNum) {
  1499.             return;
  1500.          }
  1501.  
  1502.          j -= this.textureNum * 256;
  1503.       }
  1504.  
  1505.       if(this.d >= 0) {
  1506.          j = this.d;
  1507.       }
  1508.  
  1509.       int k = (j & 15) << 4;
  1510.       int l = j & 240;
  1511.       double d3 = (double)((float)k / 256.0F);
  1512.       double d4 = (double)(((float)k + 15.99F) / 256.0F);
  1513.       double d5 = (double)((float)l / 256.0F);
  1514.       double d6 = (double)(((float)l + 15.99F) / 256.0F);
  1515.       double d7 = d + 0.5D - 0.25D;
  1516.       double d8 = d + 0.5D + 0.25D;
  1517.       double d9 = d2 + 0.5D - 0.5D;
  1518.       double d10 = d2 + 0.5D + 0.5D;
  1519.       tessellator.a(d7, d1 + 1.0D, d9, d3, d5);
  1520.       tessellator.a(d7, d1 + 0.0D, d9, d3, d6);
  1521.       tessellator.a(d7, d1 + 0.0D, d10, d4, d6);
  1522.       tessellator.a(d7, d1 + 1.0D, d10, d4, d5);
  1523.       tessellator.a(d7, d1 + 1.0D, d10, d3, d5);
  1524.       tessellator.a(d7, d1 + 0.0D, d10, d3, d6);
  1525.       tessellator.a(d7, d1 + 0.0D, d9, d4, d6);
  1526.       tessellator.a(d7, d1 + 1.0D, d9, d4, d5);
  1527.       tessellator.a(d8, d1 + 1.0D, d10, d3, d5);
  1528.       tessellator.a(d8, d1 + 0.0D, d10, d3, d6);
  1529.       tessellator.a(d8, d1 + 0.0D, d9, d4, d6);
  1530.       tessellator.a(d8, d1 + 1.0D, d9, d4, d5);
  1531.       tessellator.a(d8, d1 + 1.0D, d9, d3, d5);
  1532.       tessellator.a(d8, d1 + 0.0D, d9, d3, d6);
  1533.       tessellator.a(d8, d1 + 0.0D, d10, d4, d6);
  1534.       tessellator.a(d8, d1 + 1.0D, d10, d4, d5);
  1535.       d7 = d + 0.5D - 0.5D;
  1536.       d8 = d + 0.5D + 0.5D;
  1537.       d9 = d2 + 0.5D - 0.25D;
  1538.       d10 = d2 + 0.5D + 0.25D;
  1539.       tessellator.a(d7, d1 + 1.0D, d9, d3, d5);
  1540.       tessellator.a(d7, d1 + 0.0D, d9, d3, d6);
  1541.       tessellator.a(d8, d1 + 0.0D, d9, d4, d6);
  1542.       tessellator.a(d8, d1 + 1.0D, d9, d4, d5);
  1543.       tessellator.a(d8, d1 + 1.0D, d9, d3, d5);
  1544.       tessellator.a(d8, d1 + 0.0D, d9, d3, d6);
  1545.       tessellator.a(d7, d1 + 0.0D, d9, d4, d6);
  1546.       tessellator.a(d7, d1 + 1.0D, d9, d4, d5);
  1547.       tessellator.a(d8, d1 + 1.0D, d10, d3, d5);
  1548.       tessellator.a(d8, d1 + 0.0D, d10, d3, d6);
  1549.       tessellator.a(d7, d1 + 0.0D, d10, d4, d6);
  1550.       tessellator.a(d7, d1 + 1.0D, d10, d4, d5);
  1551.       tessellator.a(d7, d1 + 1.0D, d10, d3, d5);
  1552.       tessellator.a(d7, d1 + 0.0D, d10, d3, d6);
  1553.       tessellator.a(d8, d1 + 0.0D, d10, d4, d6);
  1554.       tessellator.a(d8, d1 + 1.0D, d10, d4, d5);
  1555.    }
  1556.  
  1557.    public boolean k(uu block, int i, int j, int k) {
  1558.       nw tessellator = nw.a;
  1559.       int l = block.b(this.c, i, j, k);
  1560.       float f = (float)(l >> 16 & 255) / 255.0F;
  1561.       float f1 = (float)(l >> 8 & 255) / 255.0F;
  1562.       float f2 = (float)(l & 255) / 255.0F;
  1563.       boolean flag = block.b(this.c, i, j + 1, k, 1);
  1564.       boolean flag1 = block.b(this.c, i, j - 1, k, 0);
  1565.       boolean[] aflag = new boolean[]{block.b(this.c, i, j, k - 1, 2), block.b(this.c, i, j, k + 1, 3), block.b(this.c, i - 1, j, k, 4), block.b(this.c, i + 1, j, k, 5)};
  1566.       if(!flag && !flag1 && !aflag[0] && !aflag[1] && !aflag[2] && !aflag[3]) {
  1567.          return false;
  1568.       } else {
  1569.          boolean flag2 = false;
  1570.          float f3 = 0.5F;
  1571.          float f4 = 1.0F;
  1572.          float f5 = 0.8F;
  1573.          float f6 = 0.6F;
  1574.          double d = 0.0D;
  1575.          double d1 = 1.0D;
  1576.          ln material = block.bA;
  1577.          int i1 = this.c.e(i, j, k);
  1578.          float f7 = this.a(i, j, k, materi



  • Recent Pastes