Example #1
0
 public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                 , int i, int j, int k)
 {
     net.minecraft.src.TileEntityPiston tileentitypiston = GetTileEntityAtLocation(iblockaccess
                                                                                   , i, j, k);
     if (tileentitypiston != null)
     {
         net.minecraft.src.Block block = net.minecraft.src.Block.blocksList[tileentitypiston
                                                                            .GetStoredBlockID()];
         if (block == null || block == this)
         {
             return;
         }
         block.SetBlockBoundsBasedOnState(iblockaccess, i, j, k);
         float f = tileentitypiston.Func_31007_a(0.0F);
         if (tileentitypiston.Func_31010_c())
         {
             f = 1.0F - f;
         }
         int l = tileentitypiston.Func_31008_d();
         minX = block.minX - (double)((float)net.minecraft.src.PistonBlockTextures.field_31051_b
                                      [l] * f);
         minY = block.minY - (double)((float)net.minecraft.src.PistonBlockTextures.field_31054_c
                                      [l] * f);
         minZ = block.minZ - (double)((float)net.minecraft.src.PistonBlockTextures.field_31053_d
                                      [l] * f);
         maxX = block.maxX - (double)((float)net.minecraft.src.PistonBlockTextures.field_31051_b
                                      [l] * f);
         maxY = block.maxY - (double)((float)net.minecraft.src.PistonBlockTextures.field_31054_c
                                      [l] * f);
         maxZ = block.maxZ - (double)((float)net.minecraft.src.PistonBlockTextures.field_31053_d
                                      [l] * f);
     }
 }
        public static bool IsPowerProviderOrWire(net.minecraft.src.IBlockAccess iblockaccess
                                                 , int i, int j, int k, int l)
        {
            int i1 = iblockaccess.GetBlockId(i, j, k);

            if (i1 == net.minecraft.src.Block.REDSTONE_WIRE.ID)
            {
                return(true);
            }
            if (i1 == 0)
            {
                return(false);
            }
            if (net.minecraft.src.Block.blocksList[i1].CanProvidePower())
            {
                return(true);
            }
            if (i1 == net.minecraft.src.Block.DIODE_OFF.ID || i1 == net.minecraft.src.Block
                .DIODE_ON.ID)
            {
                int j1 = iblockaccess.GetBlockMetadata(i, j, k);
                return(l == net.minecraft.src.ModelBed.field_22153_b[j1 & 3]);
            }
            else
            {
                return(false);
            }
        }
Example #3
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            if (isFreestanding)
            {
                return;
            }
            int   l  = iblockaccess.GetBlockMetadata(i, j, k);
            float f  = 0.28125F;
            float f1 = 0.78125F;
            float f2 = 0.0F;
            float f3 = 1.0F;
            float f4 = 0.125F;

            SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
            if (l == 2)
            {
                SetBlockBounds(f2, f, 1.0F - f4, f3, f1, 1.0F);
            }
            if (l == 3)
            {
                SetBlockBounds(f2, f, 0.0F, f3, f1, f4);
            }
            if (l == 4)
            {
                SetBlockBounds(1.0F - f4, f, f2, 1.0F, f1, f3);
            }
            if (l == 5)
            {
                SetBlockBounds(0.0F, f, f2, f4, f1, f3);
            }
        }
        public override bool IsPoweringTo(net.minecraft.src.IBlockAccess iblockaccess, int
                                          i, int j, int k, int l)
        {
            if (!torchActive)
            {
                return(false);
            }
            int i1 = iblockaccess.GetBlockMetadata(i, j, k);

            if (i1 == 5 && l == 1)
            {
                return(false);
            }
            if (i1 == 3 && l == 3)
            {
                return(false);
            }
            if (i1 == 4 && l == 2)
            {
                return(false);
            }
            if (i1 == 1 && l == 5)
            {
                return(false);
            }
            return(i1 != 2 || l != 4);
        }
Example #5
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            int   l = iblockaccess.GetBlockMetadata(i, j, k) & 7;
            float f = (float)(2 * (1 + l)) / 16F;

            SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, f, 1.0F);
        }
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            int l = iblockaccess.GetBlockMetadata(i, j, k);

            if (IsExtended(l))
            {
                switch (GetOrientation(l))
                {
                case 0:
                {
                    // '\0'
                    SetBlockBounds(0.0F, 0.25F, 0.0F, 1.0F, 1.0F, 1.0F);
                    break;
                }

                case 1:
                {
                    // '\001'
                    SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.75F, 1.0F);
                    break;
                }

                case 2:
                {
                    // '\002'
                    SetBlockBounds(0.0F, 0.0F, 0.25F, 1.0F, 1.0F, 1.0F);
                    break;
                }

                case 3:
                {
                    // '\003'
                    SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.75F);
                    break;
                }

                case 4:
                {
                    // '\004'
                    SetBlockBounds(0.25F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
                    break;
                }

                case 5:
                {
                    // '\005'
                    SetBlockBounds(0.0F, 0.0F, 0.0F, 0.75F, 1.0F, 1.0F);
                    break;
                }
                }
            }
            else
            {
                SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
            }
        }
Example #7
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            int   l  = iblockaccess.GetBlockMetadata(i, j, k);
            float f  = 0.0625F;
            float f1 = (float)(1 + l * 2) / 16F;
            float f2 = 0.5F;

            SetBlockBounds(f1, 0.0F, f, 1.0F - f, f2, 1.0F - f);
        }
Example #8
0
 public Pathfinder(net.minecraft.src.IBlockAccess iblockaccess)
 {
     // Referenced classes of package net.minecraft.src:
     //            Path, MCHash, PathPoint, Entity,
     //            AxisAlignedBB, MathHelper, IBlockAccess, Block,
     //            BlockDoor, Material, PathEntity
     path        = new net.minecraft.src.Path(null);
     pointMap    = new net.minecraft.src.MCHash();
     pathOptions = new net.minecraft.src.PathPoint[32];
     worldMap    = iblockaccess;
 }
Example #9
0
 private net.minecraft.src.TileEntityPiston GetTileEntityAtLocation(net.minecraft.src.IBlockAccess
                                                                    iblockaccess, int i, int j, int k)
 {
     net.minecraft.src.TileEntity tileentity = iblockaccess.GetBlockTileEntity(i, j, k
                                                                               );
     if (tileentity != null && (tileentity is net.minecraft.src.TileEntityPiston))
     {
         return((net.minecraft.src.TileEntityPiston)tileentity);
     }
     else
     {
         return(null);
     }
 }
Example #10
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            int l = iblockaccess.GetBlockMetadata(i, j, k);

            if (l >= 2 && l <= 5)
            {
                SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.625F, 1.0F);
            }
            else
            {
                SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F);
            }
        }
Example #11
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            int l = iblockaccess.GetBlockMetadata(i, j, k);

            switch (Func_31045_b(l))
            {
            case 0:
            {
                // '\0'
                SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
                break;
            }

            case 1:
            {
                // '\001'
                SetBlockBounds(0.0F, 0.75F, 0.0F, 1.0F, 1.0F, 1.0F);
                break;
            }

            case 2:
            {
                // '\002'
                SetBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
                break;
            }

            case 3:
            {
                // '\003'
                SetBlockBounds(0.0F, 0.0F, 0.75F, 1.0F, 1.0F, 1.0F);
                break;
            }

            case 4:
            {
                // '\004'
                SetBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
                break;
            }

            case 5:
            {
                // '\005'
                SetBlockBounds(0.75F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
                break;
            }
            }
        }
Example #12
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);
        }
Example #13
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            bool  flag = iblockaccess.GetBlockMetadata(i, j, k) == 1;
            float f    = 0.0625F;

            if (flag)
            {
                SetBlockBounds(f, 0.0F, f, 1.0F - f, 0.03125F, 1.0F - f);
            }
            else
            {
                SetBlockBounds(f, 0.0F, f, 1.0F - f, 0.0625F, 1.0F - f);
            }
        }
Example #14
0
 public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                 , int i, int j, int k)
 {
     if (iblockaccess.GetBlockId(i - 1, j, k) == ID || iblockaccess.GetBlockId(i
                                                                               + 1, j, k) == ID)
     {
         float f  = 0.5F;
         float f2 = 0.125F;
         SetBlockBounds(0.5F - f, 0.0F, 0.5F - f2, 0.5F + f, 1.0F, 0.5F + f2);
     }
     else
     {
         float f1 = 0.125F;
         float f3 = 0.5F;
         SetBlockBounds(0.5F - f1, 0.0F, 0.5F - f3, 0.5F + f1, 1.0F, 0.5F + f3);
     }
 }
Example #15
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            int   l    = iblockaccess.GetBlockMetadata(i, j, k);
            int   i1   = l & 7;
            bool  flag = (l & 8) > 0;
            float f    = 0.375F;
            float f1   = 0.625F;
            float f2   = 0.1875F;
            float f3   = 0.125F;

            if (flag)
            {
                f3 = 0.0625F;
            }
            if (i1 == 1)
            {
                SetBlockBounds(0.0F, f, 0.5F - f2, f3, f1, 0.5F + f2);
            }
            else
            {
                if (i1 == 2)
                {
                    SetBlockBounds(1.0F - f3, f, 0.5F - f2, 1.0F, f1, 0.5F + f2);
                }
                else
                {
                    if (i1 == 3)
                    {
                        SetBlockBounds(0.5F - f2, f, 0.0F, 0.5F + f2, f1, f3);
                    }
                    else
                    {
                        if (i1 == 4)
                        {
                            SetBlockBounds(0.5F - f2, f, 1.0F - f3, 0.5F + f2, f1, 1.0F);
                        }
                    }
                }
            }
        }
Example #16
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));
     }
 }
Example #17
0
        public override bool IsPoweringTo(net.minecraft.src.IBlockAccess iblockaccess, int
                                          i, int j, int k, int l)
        {
            if (!field_22015_c)
            {
                return(false);
            }
            int i1 = iblockaccess.GetBlockMetadata(i, j, k) & 3;

            if (i1 == 0 && l == 3)
            {
                return(true);
            }
            if (i1 == 1 && l == 4)
            {
                return(true);
            }
            if (i1 == 2 && l == 2)
            {
                return(true);
            }
            return(i1 == 3 && l == 5);
        }
Example #18
0
        public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                        , int i, int j, int k)
        {
            int   l = iblockaccess.GetBlockMetadata(i, j, k) & 7;
            float f = 0.1875F;

            if (l == 1)
            {
                SetBlockBounds(0.0F, 0.2F, 0.5F - f, f * 2.0F, 0.8F, 0.5F + f);
            }
            else
            {
                if (l == 2)
                {
                    SetBlockBounds(1.0F - f * 2.0F, 0.2F, 0.5F - f, 1.0F, 0.8F, 0.5F + f);
                }
                else
                {
                    if (l == 3)
                    {
                        SetBlockBounds(0.5F - f, 0.2F, 0.0F, 0.5F + f, 0.8F, f * 2.0F);
                    }
                    else
                    {
                        if (l == 4)
                        {
                            SetBlockBounds(0.5F - f, 0.2F, 1.0F - f * 2.0F, 0.5F + f, 0.8F, 1.0F);
                        }
                        else
                        {
                            float f1 = 0.25F;
                            SetBlockBounds(0.5F - f1, 0.0F, 0.5F - f1, 0.5F + f1, 0.6F, 0.5F + f1);
                        }
                    }
                }
            }
        }
Example #19
0
 public override bool IsPoweringTo(net.minecraft.src.IBlockAccess iblockaccess, int
                                   i, int j, int k, int l)
 {
     return((iblockaccess.GetBlockMetadata(i, j, k) & 8) > 0);
 }
Example #20
0
 public virtual bool IsPoweringTo(net.minecraft.src.IBlockAccess iblockaccess, int
                                  i, int j, int k, int l)
 {
     return(false);
 }
Example #21
0
 public virtual void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                , int i, int j, int k)
 {
 }
        public override bool IsPoweringTo(net.minecraft.src.IBlockAccess iblockaccess, int
                                          i, int j, int k, int l)
        {
            if (!wiresProvidePower)
            {
                return(false);
            }
            if (iblockaccess.GetBlockMetadata(i, j, k) == 0)
            {
                return(false);
            }
            if (l == 1)
            {
                return(true);
            }
            bool flag = IsPowerProviderOrWire(iblockaccess, i - 1, j, k, 1) || !iblockaccess.
                        IsBlockNormalCube(i - 1, j, k) && IsPowerProviderOrWire(iblockaccess, i - 1, j -
                                                                                1, k, -1);
            bool flag1 = IsPowerProviderOrWire(iblockaccess, i + 1, j, k, 3) || !iblockaccess
                         .IsBlockNormalCube(i + 1, j, k) && IsPowerProviderOrWire(iblockaccess, i + 1, j
                                                                                  - 1, k, -1);
            bool flag2 = IsPowerProviderOrWire(iblockaccess, i, j, k - 1, 2) || !iblockaccess
                         .IsBlockNormalCube(i, j, k - 1) && IsPowerProviderOrWire(iblockaccess, i, j - 1,
                                                                                  k - 1, -1);
            bool flag3 = IsPowerProviderOrWire(iblockaccess, i, j, k + 1, 0) || !iblockaccess
                         .IsBlockNormalCube(i, j, k + 1) && IsPowerProviderOrWire(iblockaccess, i, j - 1,
                                                                                  k + 1, -1);

            if (!iblockaccess.IsBlockNormalCube(i, j + 1, k))
            {
                if (iblockaccess.IsBlockNormalCube(i - 1, j, k) && IsPowerProviderOrWire(iblockaccess
                                                                                         , i - 1, j + 1, k, -1))
                {
                    flag = true;
                }
                if (iblockaccess.IsBlockNormalCube(i + 1, j, k) && IsPowerProviderOrWire(iblockaccess
                                                                                         , i + 1, j + 1, k, -1))
                {
                    flag1 = true;
                }
                if (iblockaccess.IsBlockNormalCube(i, j, k - 1) && IsPowerProviderOrWire(iblockaccess
                                                                                         , i, j + 1, k - 1, -1))
                {
                    flag2 = true;
                }
                if (iblockaccess.IsBlockNormalCube(i, j, k + 1) && IsPowerProviderOrWire(iblockaccess
                                                                                         , i, j + 1, k + 1, -1))
                {
                    flag3 = true;
                }
            }
            if (!flag2 && !flag1 && !flag && !flag3 && l >= 2 && l <= 5)
            {
                return(true);
            }
            if (l == 2 && flag2 && !flag && !flag1)
            {
                return(true);
            }
            if (l == 3 && flag3 && !flag && !flag1)
            {
                return(true);
            }
            if (l == 4 && flag && !flag2 && !flag3)
            {
                return(true);
            }
            return(l == 5 && flag1 && !flag2 && !flag3);
        }
Example #23
0
 public virtual bool CanBlockCatchFire(net.minecraft.src.IBlockAccess iblockaccess
                                       , int i, int j, int k)
 {
     return(chanceToEncourageFire[iblockaccess.GetBlockId(i, j, k)] > 0);
 }
Example #24
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);
        }
Example #25
0
 public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                 , int i, int j, int k)
 {
     Func_273_b(Func_271_d(iblockaccess.GetBlockMetadata(i, j, k)));
 }
Example #26
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());
 }
Example #27
0
 public override void SetBlockBoundsBasedOnState(net.minecraft.src.IBlockAccess iblockaccess
                                                 , int i, int j, int k)
 {
     SetBounds();
 }