SmoothSlope() public static method

public static SmoothSlope ( int x, int y, bool applyToNeighbors = true ) : void
x int
y int
applyToNeighbors bool
return void
Example #1
0
        // Token: 0x0600048C RID: 1164 RVA: 0x00293EE4 File Offset: 0x002920E4
        public static void SmoothSlope(int x, int y, bool applyToNeighbors = true)
        {
            if (applyToNeighbors)
            {
                Tile.SmoothSlope(x + 1, y, false);
                Tile.SmoothSlope(x - 1, y, false);
                Tile.SmoothSlope(x, y + 1, false);
                Tile.SmoothSlope(x, y - 1, false);
            }
            Tile tile = Main.tile[x, y];

            if (!WorldGen.SolidOrSlopedTile(x, y))
            {
                return;
            }
            bool flag  = !WorldGen.TileEmpty(x, y - 1);
            bool flag2 = !WorldGen.SolidOrSlopedTile(x, y - 1) & flag;
            bool flag3 = WorldGen.SolidOrSlopedTile(x, y + 1);
            bool flag4 = WorldGen.SolidOrSlopedTile(x - 1, y);
            bool flag5 = WorldGen.SolidOrSlopedTile(x + 1, y);

            switch ((flag ? 1 : 0) << 3 | (flag3 ? 1 : 0) << 2 | (flag4 ? 1 : 0) << 1 | (flag5 ? 1 : 0))
            {
            case 4:
                tile.slope(0);
                tile.halfBrick(true);
                return;

            case 5:
                tile.halfBrick(false);
                tile.slope(2);
                return;

            case 6:
                tile.halfBrick(false);
                tile.slope(1);
                return;

            case 9:
                if (!flag2)
                {
                    tile.halfBrick(false);
                    tile.slope(4);
                    return;
                }
                return;

            case 10:
                if (!flag2)
                {
                    tile.halfBrick(false);
                    tile.slope(3);
                    return;
                }
                return;
            }
            tile.halfBrick(false);
            tile.slope(0);
        }
Example #2
0
        public static void SmoothSlope(int x, int y, bool applyToNeighbors = true)
        {
            if (applyToNeighbors)
            {
                Tile.SmoothSlope(x + 1, y, false);
                Tile.SmoothSlope(x - 1, y, false);
                Tile.SmoothSlope(x, y + 1, false);
                Tile.SmoothSlope(x, y - 1, false);
            }
            Tile tile = Main.tile[x, y];

            if (!WorldGen.SolidOrSlopedTile(x, y))
            {
                return;
            }
            bool flag  = !WorldGen.TileEmpty(x, y - 1);
            bool flag1 = (WorldGen.SolidOrSlopedTile(x, y - 1) ? false : flag);
            bool flag2 = WorldGen.SolidOrSlopedTile(x, y + 1);
            bool flag3 = WorldGen.SolidOrSlopedTile(x - 1, y);
            bool flag4 = WorldGen.SolidOrSlopedTile(x + 1, y);

            switch ((flag ? 1 : 0) << 3 | (flag2 ? 1 : 0) << 2 | (flag3 ? 1 : 0) << 1 | (flag4 ? 1 : 0))
            {
            case 4:
            {
                tile.slope(0);
                tile.halfBrick(true);
                return;
            }

            case 5:
            {
                tile.halfBrick(false);
                tile.slope(2);
                return;
            }

            case 6:
            {
                tile.halfBrick(false);
                tile.slope(1);
                return;
            }

            case 7:
            case 8:
            {
                tile.halfBrick(false);
                tile.slope(0);
                break;
            }

            case 9:
            {
                if (flag1)
                {
                    break;
                }
                tile.halfBrick(false);
                tile.slope(4);
                return;
            }

            case 10:
            {
                if (flag1)
                {
                    break;
                }
                tile.halfBrick(false);
                tile.slope(3);
                return;
            }

            default:
            {
                goto case 8;
            }
            }
        }
Example #3
0
        public static void SmoothSlope(int x, int y, bool applyToNeighbors = true)
        {
            if (applyToNeighbors)
            {
                Tile.SmoothSlope(x + 1, y, false);
                Tile.SmoothSlope(x - 1, y, false);
                Tile.SmoothSlope(x, y + 1, false);
                Tile.SmoothSlope(x, y - 1, false);
            }

            var tile = Main.tile[x, y];

            if (!WorldGen.SolidOrSlopedTile(x, y))
            {
                return;
            }
            var flag1 = !WorldGen.TileEmpty(x, y - 1);
            var flag2 = !WorldGen.SolidOrSlopedTile(x, y - 1) && flag1;
            var flag3 = WorldGen.SolidOrSlopedTile(x, y + 1);
            var flag4 = WorldGen.SolidOrSlopedTile(x - 1, y);
            var flag5 = WorldGen.SolidOrSlopedTile(x + 1, y);

            switch ((flag1 ? 1 : 0) << 3 | (flag3 ? 1 : 0) << 2 | (flag4 ? 1 : 0) << 1 | (flag5 ? 1 : 0))
            {
            case 4:
                tile.slope((byte)0);
                tile.halfBrick(true);
                break;

            case 5:
                tile.halfBrick(false);
                tile.slope((byte)2);
                break;

            case 6:
                tile.halfBrick(false);
                tile.slope((byte)1);
                break;

            case 9:
                if (flag2)
                {
                    break;
                }
                tile.halfBrick(false);
                tile.slope((byte)4);
                break;

            case 10:
                if (flag2)
                {
                    break;
                }
                tile.halfBrick(false);
                tile.slope((byte)3);
                break;

            default:
                tile.halfBrick(false);
                tile.slope((byte)0);
                break;
            }
        }
Example #4
0
        public static void SmoothSlope(int x, int y, bool applyToNeighbors = true, bool sync = false)
        {
            if (applyToNeighbors)
            {
                Tile.SmoothSlope(x + 1, y, false, sync);
                Tile.SmoothSlope(x - 1, y, false, sync);
                Tile.SmoothSlope(x, y + 1, false, sync);
                Tile.SmoothSlope(x, y - 1, false, sync);
            }
            Tile tile = Main.tile[x, y];

            if (!WorldGen.CanPoundTile(x, y) || !WorldGen.SolidOrSlopedTile(x, y))
            {
                return;
            }
            bool flag1 = !WorldGen.TileEmpty(x, y - 1);
            bool flag2 = !WorldGen.SolidOrSlopedTile(x, y - 1) & flag1;
            bool flag3 = WorldGen.SolidOrSlopedTile(x, y + 1);
            bool flag4 = WorldGen.SolidOrSlopedTile(x - 1, y);
            bool flag5 = WorldGen.SolidOrSlopedTile(x + 1, y);
            int  num1  = (flag1 ? 1 : 0) << 3 | (flag3 ? 1 : 0) << 2 | (flag4 ? 1 : 0) << 1 | (flag5 ? 1 : 0);
            bool flag6 = tile.halfBrick();
            int  num2  = (int)tile.slope();

            switch (num1)
            {
            case 4:
                tile.slope((byte)0);
                tile.halfBrick(true);
                break;

            case 5:
                tile.halfBrick(false);
                tile.slope((byte)2);
                break;

            case 6:
                tile.halfBrick(false);
                tile.slope((byte)1);
                break;

            case 9:
                if (!flag2)
                {
                    tile.halfBrick(false);
                    tile.slope((byte)4);
                    break;
                }
                break;

            case 10:
                if (!flag2)
                {
                    tile.halfBrick(false);
                    tile.slope((byte)3);
                    break;
                }
                break;

            default:
                tile.halfBrick(false);
                tile.slope((byte)0);
                break;
            }
            if (!sync)
            {
                return;
            }
            int  num3  = (int)tile.slope();
            bool flag7 = flag6 != tile.halfBrick();
            bool flag8 = num2 != num3;

            if (flag7 & flag8)
            {
                NetMessage.SendData(17, -1, -1, (NetworkText)null, 23, (float)x, (float)y, (float)num3, 0, 0, 0);
            }
            else if (flag7)
            {
                NetMessage.SendData(17, -1, -1, (NetworkText)null, 7, (float)x, (float)y, 1f, 0, 0, 0);
            }
            else
            {
                if (!flag8)
                {
                    return;
                }
                NetMessage.SendData(17, -1, -1, (NetworkText)null, 14, (float)x, (float)y, (float)num3, 0, 0, 0);
            }
        }