Beispiel #1
0
        protected internal virtual int Func_303_b(net.minecraft.src.IBlockAccess iblockaccess
                                                  , int i, int j, int k)
        {
            if (iblockaccess.GetBlockMaterial(i, j, k) != blockMaterial)
            {
                return(-1);
            }
            int l = iblockaccess.GetBlockMetadata(i, j, k);

            if (l >= 8)
            {
                l = 0;
            }
            return(l);
        }
Beispiel #2
0
 public override bool ShouldSideBeRendered(net.minecraft.src.IBlockAccess iblockaccess
                                           , int i, int j, int k, int l)
 {
     net.minecraft.src.Material material = iblockaccess.GetBlockMaterial(i, j, k);
     if (material == blockMaterial)
     {
         return(false);
     }
     if (material == net.minecraft.src.Material.ice)
     {
         return(false);
     }
     if (l == 1)
     {
         return(true);
     }
     else
     {
         return(base.ShouldSideBeRendered(iblockaccess, i, j, k, l));
     }
 }
Beispiel #3
0
 public virtual bool ShouldSideBeRendered(net.minecraft.src.IBlockAccess iblockaccess
                                          , int i, int j, int k, int l)
 {
     return(iblockaccess.GetBlockMaterial(i, j, k).IsSolid());
 }
Beispiel #4
0
        private net.minecraft.src.Vec3D Func_298_c(net.minecraft.src.IBlockAccess iblockaccess
                                                   , int i, int j, int k)
        {
            net.minecraft.src.Vec3D vec3d = net.minecraft.src.Vec3D.CreateVector(0.0D, 0.0D,
                                                                                 0.0D);
            int l = Func_303_b(iblockaccess, i, j, k);

            for (int i1 = 0; i1 < 4; i1++)
            {
                int j1 = i;
                int k1 = j;
                int l1 = k;
                if (i1 == 0)
                {
                    j1--;
                }
                if (i1 == 1)
                {
                    l1--;
                }
                if (i1 == 2)
                {
                    j1++;
                }
                if (i1 == 3)
                {
                    l1++;
                }
                int i2 = Func_303_b(iblockaccess, j1, k1, l1);
                if (i2 < 0)
                {
                    if (iblockaccess.GetBlockMaterial(j1, k1, l1).GetIsSolid())
                    {
                        continue;
                    }
                    i2 = Func_303_b(iblockaccess, j1, k1 - 1, l1);
                    if (i2 >= 0)
                    {
                        int j2 = i2 - (l - 8);
                        vec3d = vec3d.AddVector((j1 - i) * j2, (k1 - j) * j2, (l1 - k) * j2);
                    }
                    continue;
                }
                if (i2 >= 0)
                {
                    int k2 = i2 - l;
                    vec3d = vec3d.AddVector((j1 - i) * k2, (k1 - j) * k2, (l1 - k) * k2);
                }
            }
            if (iblockaccess.GetBlockMetadata(i, j, k) >= 8)
            {
                bool flag = false;
                if (flag || ShouldSideBeRendered(iblockaccess, i, j, k - 1, 2))
                {
                    flag = true;
                }
                if (flag || ShouldSideBeRendered(iblockaccess, i, j, k + 1, 3))
                {
                    flag = true;
                }
                if (flag || ShouldSideBeRendered(iblockaccess, i - 1, j, k, 4))
                {
                    flag = true;
                }
                if (flag || ShouldSideBeRendered(iblockaccess, i + 1, j, k, 5))
                {
                    flag = true;
                }
                if (flag || ShouldSideBeRendered(iblockaccess, i, j + 1, k - 1, 2))
                {
                    flag = true;
                }
                if (flag || ShouldSideBeRendered(iblockaccess, i, j + 1, k + 1, 3))
                {
                    flag = true;
                }
                if (flag || ShouldSideBeRendered(iblockaccess, i - 1, j + 1, k, 4))
                {
                    flag = true;
                }
                if (flag || ShouldSideBeRendered(iblockaccess, i + 1, j + 1, k, 5))
                {
                    flag = true;
                }
                if (flag)
                {
                    vec3d = vec3d.Normalize().AddVector(0.0D, -6D, 0.0D);
                }
            }
            vec3d = vec3d.Normalize();
            return(vec3d);
        }