ACR_CreatureBehavior.AIParty.GetNearest C# (CSharp) Method

GetNearest() public method

public GetNearest ( CreatureObject Source, List Creatures ) : CreatureObject
Source CreatureObject
Creatures List
return CreatureObject
        public CreatureObject GetNearest(CreatureObject Source, List<CreatureObject> Creatures)
        {
            AreaObject SourceArea = Source.Area;
            Vector3 SourcePos = Source.Position;
            CreatureObject RetValue = null;
            if (Creatures.Count == 0) return RetValue;

            float ShortestDistance = -1.0f;
            foreach (CreatureObject Target in Creatures)
            {
                // Only interested in objects in the same area.
                if (SourceArea != Target.Area)
                    continue;

                Vector3 TargetPos = Target.Position;
                float Distance = MathOps.DistanceSq(SourcePos, TargetPos);

                if ((ShortestDistance < 0) || (Distance < ShortestDistance))
                {
                    ShortestDistance = Distance;
                    RetValue = Target;
                }
            }
            return RetValue;
        }