Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ FindClosestPlayer() [2/2]

int Terraria.NPC.FindClosestPlayer ( out float distanceToPlayer)
inline

Definition at line 69640 of file NPC.cs.

69641 {
69642 Vector2 center = base.Center;
69643 float num = float.MaxValue;
69644 int num2 = -1;
69645 for (int i = 0; i < 255; i++)
69646 {
69647 Player player = Main.player[i];
69648 if (player.active && !player.dead && !player.ghost)
69649 {
69650 float num3 = Vector2.DistanceSquared(center, player.Center);
69651 if (num3 < num)
69652 {
69653 num = num3;
69654 num2 = i;
69655 }
69656 }
69657 }
69658 if (num2 < 0)
69659 {
69660 for (int j = 0; j < 255; j++)
69661 {
69662 Player player = Main.player[j];
69663 if (player.active)
69664 {
69665 float num4 = Vector2.DistanceSquared(center, player.Center);
69666 if (num4 < num)
69667 {
69668 num = num4;
69669 num2 = j;
69670 }
69671 }
69672 }
69673 }
69674 distanceToPlayer = (float)Math.Sqrt(num);
69675 return num2;
69676 }
static double Sqrt(double d)
static float DistanceSquared(Vector2 value1, Vector2 value2)
Definition Vector2.cs:107

References Terraria.Entity.active, Terraria.Entity.Center, Terraria.Player.dead, Microsoft.Xna.Framework.Vector2.DistanceSquared(), Terraria.Player.ghost, Terraria.Main.player, and System.Math.Sqrt().