aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/sowgro/npehero/editor/LevelEditor.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2024-07-28 01:07:41 -0400
committersowgro <tpoke.ferrari@gmail.com>2024-07-28 01:07:41 -0400
commit0ce09f72f4af26412356b9699d402b52dbcfc94f (patch)
treeb01b94b1b80d1f3fc5aea559b3718024b79cfe91 /src/main/java/net/sowgro/npehero/editor/LevelEditor.java
parentd04c277edff957d14b6261dd38da43c18b7ba189 (diff)
downloadNPEhero-0ce09f72f4af26412356b9699d402b52dbcfc94f.tar.gz
NPEhero-0ce09f72f4af26412356b9699d402b52dbcfc94f.tar.bz2
NPEhero-0ce09f72f4af26412356b9699d402b52dbcfc94f.zip
Finalize level API and new Json library
Diffstat (limited to 'src/main/java/net/sowgro/npehero/editor/LevelEditor.java')
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/editor/LevelEditor.java54
1 files changed, 34 insertions, 20 deletions
diff --git a/src/main/java/net/sowgro/npehero/editor/LevelEditor.java b/src/main/java/net/sowgro/npehero/editor/LevelEditor.java
index b3ae2b8..ae56d44 100755
--- a/src/main/java/net/sowgro/npehero/editor/LevelEditor.java
+++ b/src/main/java/net/sowgro/npehero/editor/LevelEditor.java
@@ -1,6 +1,7 @@
package net.sowgro.npehero.editor;
import java.io.File;
+import java.io.IOException;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.geometry.Pos;
@@ -10,10 +11,16 @@ import javafx.scene.text.Text;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
import net.sowgro.npehero.Driver;
+import net.sowgro.npehero.levelapi.Difficulty;
+import net.sowgro.npehero.levelapi.Level;
import net.sowgro.npehero.main.*;
public class LevelEditor extends Page
{
+ private final ValidIndicator songValid = new ValidIndicator();
+ private final ValidIndicator diffsInvalid = new ValidIndicator();
+ Level level;
+
private HBox content = new HBox();
private File selectedSong = null;
@@ -22,6 +29,7 @@ public class LevelEditor extends Page
public LevelEditor(Level level, Page prev)
{
+ this.level = level;
Text folderNameLabel = new Text("Folder name");
TextField folderName = new TextField();
if (level.dir != null) {
@@ -55,10 +63,6 @@ public class LevelEditor extends Page
HBox colorPickerBox = new HBox();
colorPickerBox.getChildren().addAll(colorsPickers);
- ValidIndicator songValid = new ValidIndicator();
- if (level.song == null) {
- songValid.setInvalid("Missing song file!");
- }
HBox filesLabel = new HBox(new Text("Files"), songValid);
FileChooser backgroundChooser = new FileChooser();
@@ -77,10 +81,6 @@ public class LevelEditor extends Page
songButton.setOnAction(_ -> selectedSong = songChooser.showOpenDialog(Driver.primaryStage));
- ValidIndicator diffsInvalid = new ValidIndicator();
- if (level.difficulties.getValidList().isEmpty()) {
- diffsInvalid.setInvalid("This level contains no valid difficulties!");
- }
HBox diffLabel = new HBox(new Text("Difficulties"), diffsInvalid);
diffLabel.setSpacing(5);
@@ -134,18 +134,25 @@ public class LevelEditor extends Page
try {
if (selectedBackground != null && selectedBackground.exists()) {
- level.addFile(selectedBackground, "background." + getFileExtension(selectedBackground));
+ level.addFile(selectedBackground, "background");
}
if (selectedPreview != null && selectedPreview.exists()) {
- level.addFile(selectedPreview, "preview." + getFileExtension(selectedPreview));
+ level.addFile(selectedPreview, "preview");
}
if (selectedSong != null) {
- level.addFile(selectedSong, "song." + getFileExtension(selectedSong));
+ level.addFile(selectedSong, "song");
}
- } catch (Exception _) {
+ } catch (Exception ex) {
+ // TODO
+ ex.printStackTrace();
+ }
+ try {
+ level.writeMetadata();
+ } catch (IOException ex) {
// TODO
+ ex.printStackTrace();
}
- level.writeMetadata();
+ validate();
});
VBox left = new VBox(filesLabel, songButton, previewButton, backgroundButton, colorsLabel, colorPickerBox);
@@ -189,12 +196,19 @@ public class LevelEditor extends Page
return content;
}
- /**
- * Get the extension of a file.
- * @param file The file to return the extension of
- * @return The extension of the file in the format "*.ext"
- */
- public String getFileExtension(File file) {
- return file.getName().substring(file.getName().lastIndexOf('.') + 1);
+ @Override
+ public void onView() {
+ validate();
+ }
+
+ public void validate() {
+ if (level.difficulties.getValidList().isEmpty()) {
+ diffsInvalid.setInvalid("This level contains no valid difficulties!");
+ } else {
+ diffsInvalid.setValid();
+ }
+ if (level.song == null) {
+ songValid.setInvalid("Missing song file!");
+ }
}
} \ No newline at end of file