Terraria.Tile.SmoothSlope C# (CSharp) Method

SmoothSlope() public static method

public static SmoothSlope ( int x, int y, bool applyToNeighbors = true ) : void
x int
y int
applyToNeighbors bool
return void
        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 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);
            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;
            }
        }

Usage Example

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);
        }
All Usage Examples Of Terraria.Tile::SmoothSlope