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); } } } }