Terraria.Framing.FindBlockStyle C# (CSharp) Method

FindBlockStyle() private static method

private static FindBlockStyle ( Tile blockTile ) : Framing.BlockStyle
blockTile Tile
return Framing.BlockStyle
        private static Framing.BlockStyle FindBlockStyle(Tile blockTile)
        {
            return Framing.blockStyleLookup[blockTile.blockType()];
        }

Usage Example

Exemplo n.º 1
0
        public static void SelfFrame8Way(int i, int j, Tile centerTile, bool resetFrame)
        {
            if (!centerTile.active())
            {
                return;
            }
            ushort gemsparkFramingType = TileID.Sets.GemsparkFramingTypes[(int)centerTile.type];

            Framing.BlockStyle blockStyle1 = Framing.FindBlockStyle(centerTile);
            int index = 0;

            Framing.BlockStyle blockStyle2 = new Framing.BlockStyle();
            if (blockStyle1.top)
            {
                Tile tileSafely = Framing.GetTileSafely(i, j - 1);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    blockStyle2 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle2.bottom)
                    {
                        index |= 1;
                    }
                    else
                    {
                        blockStyle2.Clear();
                    }
                }
            }
            Framing.BlockStyle blockStyle3 = new Framing.BlockStyle();
            if (blockStyle1.left)
            {
                Tile tileSafely = Framing.GetTileSafely(i - 1, j);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    blockStyle3 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle3.right)
                    {
                        index |= 2;
                    }
                    else
                    {
                        blockStyle3.Clear();
                    }
                }
            }
            Framing.BlockStyle blockStyle4 = new Framing.BlockStyle();
            if (blockStyle1.right)
            {
                Tile tileSafely = Framing.GetTileSafely(i + 1, j);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    blockStyle4 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle4.left)
                    {
                        index |= 4;
                    }
                    else
                    {
                        blockStyle4.Clear();
                    }
                }
            }
            Framing.BlockStyle blockStyle5 = new Framing.BlockStyle();
            if (blockStyle1.bottom)
            {
                Tile tileSafely = Framing.GetTileSafely(i, j + 1);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    blockStyle5 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle5.top)
                    {
                        index |= 8;
                    }
                    else
                    {
                        blockStyle5.Clear();
                    }
                }
            }
            if (blockStyle2.left && blockStyle3.top)
            {
                Tile tileSafely = Framing.GetTileSafely(i - 1, j - 1);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    Framing.BlockStyle blockStyle6 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle6.right && blockStyle6.bottom)
                    {
                        index |= 16;
                    }
                }
            }
            if (blockStyle2.right && blockStyle4.top)
            {
                Tile tileSafely = Framing.GetTileSafely(i + 1, j - 1);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    Framing.BlockStyle blockStyle6 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle6.left && blockStyle6.bottom)
                    {
                        index |= 32;
                    }
                }
            }
            if (blockStyle5.left && blockStyle3.bottom)
            {
                Tile tileSafely = Framing.GetTileSafely(i - 1, j + 1);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    Framing.BlockStyle blockStyle6 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle6.right && blockStyle6.top)
                    {
                        index |= 64;
                    }
                }
            }
            if (blockStyle5.right && blockStyle4.bottom)
            {
                Tile tileSafely = Framing.GetTileSafely(i + 1, j + 1);
                if (tileSafely.active() && (int)TileID.Sets.GemsparkFramingTypes[(int)tileSafely.type] == (int)gemsparkFramingType)
                {
                    Framing.BlockStyle blockStyle6 = Framing.FindBlockStyle(tileSafely);
                    if (blockStyle6.left && blockStyle6.top)
                    {
                        index |= 128;
                    }
                }
            }
            if (resetFrame)
            {
                centerTile.frameNumber((byte)WorldGen.genRand.Next(0, 3));
            }
            Point16 point16 = Framing.selfFrame8WayLookup[index][(int)centerTile.frameNumber()];

            centerTile.frameX = point16.X;
            centerTile.frameY = point16.Y;
        }
All Usage Examples Of Terraria.Framing::FindBlockStyle