private Point16 DrillSmartCursor(Player mountedPlayer, Mount.DrillMountData data)
{
Vector2 vector2_1 = mountedPlayer.whoAmI != Main.myPlayer ? data.crosshairPosition : Main.screenPosition + new Vector2((float)Main.mouseX, (float)Main.mouseY);
Vector2 center = mountedPlayer.Center;
Vector2 vector2_2 = vector2_1 - center;
float num1 = vector2_2.Length();
if ((double)num1 > 224.0)
num1 = 224f;
float num2 = num1 + 32f;
vector2_2.Normalize();
Vector2 start = center;
Vector2 end = center + vector2_2 * num2;
Point16 tilePoint = new Point16(-1, -1);
if (!Utils.PlotTileLine(start, end, 65.6f, (Utils.PerLinePoint)((x, y) =>
{
tilePoint = new Point16(x, y);
for (int index = 0; index < data.beams.Length; ++index)
{
if (data.beams[index].curTileTarget == tilePoint)
return true;
}
return !WorldGen.CanKillTile(x, y) || Main.tile[x, y] == null || (Main.tile[x, y].inActive() || !Main.tile[x, y].active());
})))
return tilePoint;
return new Point16(-1, -1);
}