diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2024-07-23 17:03:40 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2024-07-23 17:03:40 -0400 |
commit | d04c277edff957d14b6261dd38da43c18b7ba189 (patch) | |
tree | 09ccedfb21efc49485a33c5daaa121fd4a01ef78 /src/main/java/net/sowgro/npehero/Driver.java | |
parent | aae98b8bfca1578c14d6dde3a2f3180c7c580131 (diff) | |
download | NPEhero-d04c277edff957d14b6261dd38da43c18b7ba189.tar.gz NPEhero-d04c277edff957d14b6261dd38da43c18b7ba189.tar.bz2 NPEhero-d04c277edff957d14b6261dd38da43c18b7ba189.zip |
Improve level API and error handling
Diffstat (limited to 'src/main/java/net/sowgro/npehero/Driver.java')
-rwxr-xr-x | src/main/java/net/sowgro/npehero/Driver.java | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/src/main/java/net/sowgro/npehero/Driver.java b/src/main/java/net/sowgro/npehero/Driver.java index 4c737f7..3e1bd6e 100755 --- a/src/main/java/net/sowgro/npehero/Driver.java +++ b/src/main/java/net/sowgro/npehero/Driver.java @@ -12,10 +12,14 @@ import javafx.scene.input.KeyEvent; import javafx.scene.layout.*; import javafx.stage.Stage; import javafx.util.Duration; +import net.sowgro.npehero.editor.ErrorDisplay; import net.sowgro.npehero.main.*; import net.sowgro.npehero.gui.MainMenu; +import java.io.FileNotFoundException; import java.net.URL; +import java.util.List; +import java.util.Stack; public class Driver extends Application @@ -42,9 +46,6 @@ public class Driver extends Application */ @Override public void start(Stage newPrimaryStage) { - Settings.read(); - Levels.readData(); - Control.readFromFile(); primaryStage = newPrimaryStage; @@ -65,8 +66,7 @@ public class Driver extends Application primaryStage.setTitle("NPE Hero"); primaryPane.getStyleClass().remove("scroll-pane"); - - setMenu(new MainMenu()); + setMenuBackground(); Sound.playSong(Sound.MENU_SONG); @@ -79,6 +79,28 @@ public class Driver extends Application primaryStage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH); primaryStage.setFullScreenExitHint(""); primaryStage.show(); + + Stack<String> errors = new Stack<>(); + try { + Settings.read(); + } catch (Exception e) { + errors.push("Failed to load settings from file\n"+e); + } + try { + Levels.readData(); + } catch (FileNotFoundException e) { + errors.push("Failed to load levels: Level folder is missing\n"); + } + try { + Control.readFromFile(); + } catch (Exception e) { + errors.push("Failed to load controls from file\n"+e); + } + Page last = new MainMenu(); + while (!errors.empty()) { + last = new ErrorDisplay(errors.pop(), last); + } + Driver.setMenu(last); } /** |