/// <summary> /// Gets the units collection of the specified team. /// </summary> /// <param name="team">The team.</param> /// <returns>The units collection.</returns> private KDTree <Unit> GetUnitsOfTeam(Team team) { units.TryGetValue(team, out var collection); return(collection); }
/// <summary> /// Gets the units with the specified team in the specified circular region. /// </summary> /// <param name="team">The team.</param> /// <param name="point">The area center point coordinates.</param> /// <param name="radius">The radius.</param> /// <returns>The units.</returns> public IEnumerable <Unit> GetUnitsByCircleArea(Team team, Vector3 point, float radius) { return(GetUnitsOfTeam(team)?.GetByCircleArea(point, radius) ?? Enumerable.Empty <Unit>()); }
/// <summary> /// Finds the closest unit to the specified point with the specified team. /// </summary> /// <param name="team">The team.</param> /// <param name="position">The position.</param> /// <returns>The unit.</returns> public Unit FindClosestUnit(Team team, Vector3 position) { return(GetUnitsOfTeam(team)?.FindClosest(position)); }
/// <summary> /// Gets the units with the specified team in the specified rectangular region. /// </summary> /// <param name="team">The team.</param> /// <param name="min">The minimum point coordinates.</param> /// <param name="max">The maximum point coordinates..</param> /// <returns>The units.</returns> public IEnumerable <Unit> GetUnitsByRegion(Team team, Vector3 min, Vector3 max) { return(GetUnitsOfTeam(team)?.GetByRegion(min, max) ?? Enumerable.Empty <Unit>()); }