diff options
Diffstat (limited to 'src/main/LevelController.java')
-rw-r--r-- | src/main/LevelController.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main/LevelController.java b/src/main/LevelController.java index 9a94838..78d638a 100644 --- a/src/main/LevelController.java +++ b/src/main/LevelController.java @@ -2,6 +2,9 @@ package main; import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; import javafx.collections.FXCollections; import javafx.collections.ObservableList; @@ -11,11 +14,17 @@ public class LevelController File thisDir = new File("levels"); public static ObservableList<Level> levelList; + /** + * Creates a levelController, which holds all the levels + */ public LevelController() { readData(); } + /** + * Reads contents of folder and creates cooresponding levels + */ public void readData() { levelList = FXCollections.observableArrayList(); @@ -27,6 +36,10 @@ public class LevelController } } + /** + * Adds a level to the list by creating a directory and required files + * @param text: the name of the directory and default title + */ public void addLevel(String text) { File levelDir = new File(thisDir,text); @@ -45,4 +58,23 @@ public class LevelController temp.writeMetadata(); readData(); } + + /** + * Removes level from the filesystem then reloads this levelController + * @param level: the level to be removed + */ + public void removeLevel(Level level) + { + File hold = level.thisDir; + levelList.remove(level); + + try { + Files.walk(hold.toPath()) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } catch (IOException e) { + e.printStackTrace(); + } + } }
\ No newline at end of file |