示例#1
0
 private void AddNeighborRoute(Route route, int x, int y)
 {
     route.AddFloor(x, y);
     int[] xs = {x + 1, x - 1, x, x};
     int[] ys = {y, y, y + 1, y - 1};
     for (int i = 0; i < 4; ++i) {
         Vector2 v = new Vector2(xs[i], ys[i]);
         if (this.level.IsRoute(xs[i], ys[i]) && !this.level.ContainsInRoutes(xs[i], ys[i])) {
             this.AddNeighborRoute(route, xs[i], ys[i]);
         } else if (this.level.IsFloor(xs[i], ys[i])) {
             Room room = this.level.GetRoom(v);
             if (room != null) {
                 route.AddNeighbor(new Vector2(x, y), room);
                 room.AddNeighbor(v, route);
             }
         }
     }
 }