Esempio n. 1
0
  public LevelData saveLevelData(LevelData levelData) throws FileNotFoundException {
    PrintWriter writer = new PrintWriter(getLevelDataOutputStream(levelData));
    writer.print(levelData.getLevelDataJSON());
    writer.close();

    String fileName = levelData.getLevelFileName();
    Chapter chapter = levelData.getChapter();
    for (int i = 0; i < chapter.getLevelDataList().size(); i++) {
      if (chapter.getLevelDataList().get(i).getLevelFileName().equals(fileName)) {
        chapter.getLevelDataList().remove(i);
        chapter.getLevelDataList().add(i, levelData);
        break;
      }
    }

    return levelData;
  }
  /**
   * Start a rendering job for specified {@link Chapter}. The job will sequentially render a
   * thumbnail one by one, starting from the first {@link LevelData}.
   *
   * @param chapter a {@link Chapter} that all of its {@link LevelData}'s thumbnail images will be
   *     rendered.
   */
  protected static void startRenderThumbnail(Chapter chapter) {
    // if (!chapter.isRenderingJobStarted()) {
    chapter.setRenderingJobStarted(true);

    System.out.println(
        "Thumbnail rendering job of chapter \"" + chapter.getChapterName() + "\" has started");

    RendererRunnable previousJob = null;
    for (LevelData level : chapter.getLevelDataList()) {
      if (!level.isThumbnailRenderJobOccupied()) {
        level.setThumbnailRenderJobOccupied();
        previousJob = new RendererRunnable(level, previousJob);
        new Thread(previousJob).start();
      }
    }
    // }
  }
Esempio n. 3
0
  public Scene getNextLevelPlayScene(LevelData currentLevel) {
    Chapter chapter = currentLevel.getChapter();
    List<LevelData> levelList = chapter.getLevelDataList();

    if (levelList.indexOf(currentLevel) < levelList.size() - 1) { // Not last level
      return new PlayScene(levelList.get(levelList.indexOf(currentLevel) + 1));
    } else {
      List<Chapter> chapterList =
          (currentLevel.getPlayerCount() == 1) ? singlePlayerChapterList : coopModeChapterList;

      int i = chapterList.indexOf(chapter) + 1;
      while (i < chapterList.size()) {
        if (!chapterList.get(i).isUserFolder()
            && chapterList.get(i).getLevelDataList().size() > 0) {
          return new PlayScene(chapterList.get(i).getLevelDataList().get(0));
        }
        i++;
      }
    }

    return new MainMenuScene(false);
  }