public void findDrones(Vector fromPoint, Vector toPoint, GetCacheRange callback) { IntPoint iFromPoint = ToFramePoint(fromPoint); IntPoint iToPoint = ToFramePoint(toPoint); IntPoint iPoint = new IntPoint(); for (iPoint.X = iFromPoint.X; iPoint.X <= iToPoint.X; iPoint.X++) { for (iPoint.Y = iFromPoint.Y; iPoint.Y <= iToPoint.Y; iPoint.Y++) { //if(!cache.ContainsKey(iPoint)) continue; //foreach (Drone drone in cache[iPoint]) //{ // yield return drone; //} List <Drone> drones = getDrones(iPoint); if (drones == null) { continue; } callback(drones); } } }
public void findDrones(List <Team> teams, Vector fromPoint, Vector toPoint, GetCacheRange callback) { List <Drone> results = new List <Drone>(); foreach (Team team in teams) { //foreach (Drone done in cache[team].findDrones(fromPoint, toPoint)) //{ // yield return done; //} cache[team].findDrones(fromPoint, toPoint, callback); } }