* @param levelPath
* Der Ordner, in dem sich die Level befinden, es werden auch die
* Unterordner durchsucht
*/
public LevelSelection(Menu parent, String levelPath, String name) {
super(parent, new GridContainer(1, 1), name);
this.levels = new ArrayList<String>();
if (levelPath.startsWith(Parameter.PROGRAMM_DIRECTORY_LEVELS)) {
// Level auf normale Art lokalisieren, wenn im Userverzeichnis
// gesucht werden soll
this.levelPath = levelPath;
this.levels = this.defaultFileSearch();
} else {
if (JarHandler.existJar()) {
this.levelPath = "/" + levelPath;
// Wenn das Jar-Archiv existiert, dann Level aus dem Archiv
// laden
this.levels = this.jarFileSearch();
} else {
// Levelpfad um "resources/" ergänzen, wenn das Programm nicht
// aus einem Jar-Archiv geladen
if (!levelPath.startsWith("resources/")) {
levelPath = "resources/" + levelPath;
}
this.levelPath = levelPath;
// Wenn Laden der Level aus Jar-Archiv nicht funktioniert, Level
// nach normalem Schema laden
this.levels = this.defaultFileSearch();
}
}
// Button-Liste erstellen
for (String file : this.levels) {
InterfaceTextButton button = new InterfaceTextButton(
InterfaceFunctions.LEVELSELECTION, file);
button.addInformable(this);
this.selectList.addTextButton(button);
}
GridContainer grid = new GridContainer(1, 1);
grid.add(this.selectList, 0, 0);
grid.maximizeSize();
this.setMainContainer(grid);
}