Terraria.Player.MinionTargetAim C# (CSharp) Method

MinionTargetAim() public method

public MinionTargetAim ( ) : void
return void
        public void MinionTargetAim()
        {
            Vector2 mouseWorld = Main.MouseWorld;
            float num1 = mouseWorld.Y;
            int i = (int)mouseWorld.X / 16;
            int index1 = (int)num1 / 16;
            int num2 = 0;
            if (Main.tile[i, index1].nactive() && Main.tileSolid[(int)Main.tile[i, index1].type] && !Main.tileSolidTop[(int)Main.tile[i, index1].type])
            {
                int num3 = 0;
                for (int index2 = 0; index2 > -20 && index1 + index2 > 1; --index2)
                {
                    int index3 = index1 + index2;
                    if (Main.tile[i, index3].nactive() && Main.tileSolid[(int)Main.tile[i, index3].type] && !Main.tileSolidTop[(int)Main.tile[i, index3].type])
                    {
                        num3 = index2;
                    }
                    else
                    {
                        num3 = index2;
                        break;
                    }
                }
                int num4 = 0;
                for (int index2 = 0; index2 < 20 && index1 + index2 < Main.maxTilesY; ++index2)
                {
                    int index3 = index1 + index2;
                    if (Main.tile[i, index3].nactive() && Main.tileSolid[(int)Main.tile[i, index3].type] && !Main.tileSolidTop[(int)Main.tile[i, index3].type])
                    {
                        num4 = index2;
                    }
                    else
                    {
                        num4 = index2;
                        break;
                    }
                }
                num2 = num4 <= -num3 ? num4 + 3 : num3 - 2;
            }
            int num5 = index1 + num2;
            bool flag = false;
            for (int j = num5; j < num5 + 5; ++j)
            {
                if (WorldGen.SolidTileAllowBottomSlope(i, j))
                    flag = true;
            }
            while (!flag)
            {
                ++num5;
                for (int j = num5; j < num5 + 5; ++j)
                {
                    if (WorldGen.SolidTileAllowBottomSlope(i, j))
                        flag = true;
                }
            }
            Vector2 Other = new Vector2((float)(i * 16 + 8), (float)(num5 * 16));
            if ((double)this.Distance(Other) > 1000.0)
                return;
            this.MinionTargetPoint = Other;
        }
Player