aboutsummaryrefslogtreecommitdiff
path: root/src/main/LevelController.java
diff options
context:
space:
mode:
authorZach Jordan <zxjordan5@gmail.com>2023-06-02 08:14:35 -0400
committerZach Jordan <zxjordan5@gmail.com>2023-06-02 08:14:35 -0400
commit408c42dc788a7d9c218071dea34843b4196fa7c8 (patch)
tree6a24298db96c1bec42d9720cc52b85451f896aab /src/main/LevelController.java
parentb3306178c75bec60e0842285d20a816b318dba66 (diff)
parenta0739dc019417f17e77f6c959ebc0989c873514c (diff)
downloadNPEhero-408c42dc788a7d9c218071dea34843b4196fa7c8.tar.gz
NPEhero-408c42dc788a7d9c218071dea34843b4196fa7c8.tar.bz2
NPEhero-408c42dc788a7d9c218071dea34843b4196fa7c8.zip
Merge branch 'main' of https://gitlab.sowgro.net/guitarheros/guitarhero
Diffstat (limited to 'src/main/LevelController.java')
-rw-r--r--src/main/LevelController.java36
1 files changed, 31 insertions, 5 deletions
diff --git a/src/main/LevelController.java b/src/main/LevelController.java
index eff512d..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,21 +14,32 @@ 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();
for (File cur: thisDir.listFiles()) //iterates through all files/folders in levels
{
Level level = new Level(cur);
+ level.readData();
levelList.add(level);
}
}
+ /**
+ * 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);
@@ -39,16 +53,28 @@ public class LevelController
{
e.printStackTrace();
}
+ Level temp = new Level(levelDir);
+ temp.setTitle(text);
+ temp.writeMetadata();
readData();
}
+ /**
+ * Removes level from the filesystem then reloads this levelController
+ * @param level: the level to be removed
+ */
public void removeLevel(Level level)
{
- //soon
- }
+ File hold = level.thisDir;
+ levelList.remove(level);
- public void renameLevel(Level level, String newName)
- {
- //soon
+ 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