diff options
Diffstat (limited to 'src/main/java/net/sowgro/npehero')
4 files changed, 20 insertions, 3 deletions
diff --git a/src/main/java/net/sowgro/npehero/Driver.java b/src/main/java/net/sowgro/npehero/Driver.java index 89381aa..3be414c 100755 --- a/src/main/java/net/sowgro/npehero/Driver.java +++ b/src/main/java/net/sowgro/npehero/Driver.java @@ -17,6 +17,7 @@ import net.sowgro.npehero.levelapi.Levels; import net.sowgro.npehero.main.*; import net.sowgro.npehero.gui.MainMenu; +import java.io.File; import java.io.IOException; import java.net.URL; import java.util.Stack; @@ -25,6 +26,7 @@ import java.util.Stack; public class Driver extends Application { public static final Image MENU_BACKGROUND = new Image(Driver.class.getResource("mountains.png").toExternalForm()); + public static final File BASE_DIR = new File(".npehero"); public static Stage primaryStage; public static ScrollPane primaryPane = new ScrollPane(); @@ -88,6 +90,17 @@ public class Driver extends Application primaryStage.show(); Stack<String> errors = new Stack<>(); + System.out.println("Loading .npehero..."); + try { + if (!BASE_DIR.exists() && !BASE_DIR.mkdir()) { + throw new IOException(); + } + if (!BASE_DIR.isDirectory()) { + throw new IOException(); + } + } catch (Exception e) { + errors.push("Failed to locate .npehero\n"+e); + } System.out.println("Loading settings..."); try { Settings.read(); diff --git a/src/main/java/net/sowgro/npehero/levelapi/Levels.java b/src/main/java/net/sowgro/npehero/levelapi/Levels.java index 84d169c..f4cdc1d 100755 --- a/src/main/java/net/sowgro/npehero/levelapi/Levels.java +++ b/src/main/java/net/sowgro/npehero/levelapi/Levels.java @@ -11,6 +11,7 @@ import java.util.HashMap; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import net.sowgro.npehero.Driver; /** * Stores a list of all the levels @@ -20,7 +21,7 @@ public class Levels { public static final ObservableList<Level> list = FXCollections.observableArrayList(); public static final HashMap<String, Exception> problems = new HashMap<>(); - public static final File dir = new File("levels"); + public static final File dir = new File(Driver.BASE_DIR, "levels"); /** * Reads contents of the levels folder and creates a level form each subfolder diff --git a/src/main/java/net/sowgro/npehero/main/Control.java b/src/main/java/net/sowgro/npehero/main/Control.java index c842419..df6e3ef 100644 --- a/src/main/java/net/sowgro/npehero/main/Control.java +++ b/src/main/java/net/sowgro/npehero/main/Control.java @@ -5,6 +5,7 @@ import com.google.gson.GsonBuilder; import javafx.beans.property.ObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.input.KeyCode; +import net.sowgro.npehero.Driver; import java.io.*; import java.util.*; @@ -43,7 +44,7 @@ public enum Control { LANE4, }; - private static final File file = new File("controls.json"); + private static final File file = new File(Driver.BASE_DIR, "controls.json"); private static final Gson json = new GsonBuilder().serializeNulls().setPrettyPrinting().create(); public static void writeToFile() throws IOException { @@ -57,6 +58,7 @@ public enum Control { } public static void readFromFile() throws Exception { + @SuppressWarnings("unchecked") Map<String, Object> data = json.fromJson(new FileReader(file), Map.class); for (Control control : Control.values()) { if (data.containsKey(control.toString())) { diff --git a/src/main/java/net/sowgro/npehero/main/Settings.java b/src/main/java/net/sowgro/npehero/main/Settings.java index 162f579..cee7680 100755 --- a/src/main/java/net/sowgro/npehero/main/Settings.java +++ b/src/main/java/net/sowgro/npehero/main/Settings.java @@ -11,6 +11,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleDoubleProperty; +import net.sowgro.npehero.Driver; public class Settings { @@ -20,7 +21,7 @@ public class Settings public static SimpleDoubleProperty guiScale = new SimpleDoubleProperty(1); private static final Gson jsonParser = new GsonBuilder().serializeNulls().setPrettyPrinting().create(); - private static final File jsonFile = new File("settings.json"); + private static final File jsonFile = new File(Driver.BASE_DIR, "settings.json"); /** * Reads json data from settings.json |