Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AI_007_TownEntities_Shimmer_ScanForBestSpotToLandOn()

Vector2? Terraria.NPC.AI_007_TownEntities_Shimmer_ScanForBestSpotToLandOn ( )
inlineprivate

Definition at line 48724 of file NPC.cs.

48725 {
48726 Point point = base.Top.ToTileCoordinates();
48727 int num = 30;
48728 Vector2? result = null;
48729 bool flag = homeless && (homeTileX == -1 || homeTileY == -1);
48730 for (int i = 1; i < num; i += 2)
48731 {
48732 Vector2? vector = ShimmerHelper.FindSpotWithoutShimmer(this, point.X, point.Y, i, flag);
48733 if (vector.HasValue)
48734 {
48735 result = vector.Value;
48736 break;
48737 }
48738 }
48739 if (!result.HasValue && homeTileX != -1 && homeTileY != -1)
48740 {
48741 for (int j = 1; j < num; j += 2)
48742 {
48744 if (vector2.HasValue)
48745 {
48746 result = vector2.Value;
48747 break;
48748 }
48749 }
48750 }
48751 if (!result.HasValue)
48752 {
48753 int num2 = (flag ? 30 : 0);
48754 num = 60;
48755 flag = true;
48756 for (int k = num2; k < num; k += 2)
48757 {
48758 Vector2? vector3 = ShimmerHelper.FindSpotWithoutShimmer(this, point.X, point.Y, k, flag);
48759 if (vector3.HasValue)
48760 {
48761 result = vector3.Value;
48762 break;
48763 }
48764 }
48765 }
48766 if (!result.HasValue && homeTileX != -1 && homeTileY != -1)
48767 {
48768 num = 60;
48769 flag = true;
48770 for (int l = 30; l < num; l += 2)
48771 {
48773 if (vector4.HasValue)
48774 {
48775 result = vector4.Value;
48776 break;
48777 }
48778 }
48779 }
48780 return result;
48781 }
static ? Vector2 FindSpotWithoutShimmer(Entity entity, int startX, int startY, int expand, bool allowSolidTop)
int homeTileX
Definition NPC.cs:543
bool homeless
Definition NPC.cs:541
int homeTileY
Definition NPC.cs:545

References Terraria.GameContent.ShimmerHelper.FindSpotWithoutShimmer(), Terraria.NPC.homeless, Terraria.NPC.homeTileX, Terraria.NPC.homeTileY, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.

Referenced by Terraria.NPC.AI_007_TownEntities_Shimmer_TeleportToLandingSpot().