diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2024-07-08 02:41:31 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2024-07-08 02:41:31 -0400 |
commit | ee2229339429d50afa33e2f8b9c0ee0939766290 (patch) | |
tree | a5ee54bd23c24950e9b10815f3e87605906992d8 /src/main/Difficulty.java | |
parent | 9e1371424bdf4c31d756d686313730d4c61f7ac5 (diff) | |
download | NPEhero-ee2229339429d50afa33e2f8b9c0ee0939766290.tar.gz NPEhero-ee2229339429d50afa33e2f8b9c0ee0939766290.tar.bz2 NPEhero-ee2229339429d50afa33e2f8b9c0ee0939766290.zip |
Change project structure, embed resources into jar and remove libraries from source control
Diffstat (limited to 'src/main/Difficulty.java')
-rw-r--r-- | src/main/Difficulty.java | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/src/main/Difficulty.java b/src/main/Difficulty.java deleted file mode 100644 index d8587f1..0000000 --- a/src/main/Difficulty.java +++ /dev/null @@ -1,272 +0,0 @@ -package main; - -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.time.LocalDate; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; - -public class Difficulty implements Comparable<Difficulty> -{ - public File thisDir; - public String title = "Unnamed"; - private ObservableList<LeaderboardEntry> leaderboard = FXCollections.observableArrayList(); - public File notes; - public Double bpm = 0.0; - public int numBeats; - public Level level; - public boolean isValid = false; - public int priority = 0; - - /** - * Creates a new Difficulty and gives it a file path - * @param newDir: The file path of the Difficulty - */ - public Difficulty(File newDir, Level level) - { - thisDir = newDir; - this.level = level; - } - - public void readData() - { - boolean isValid1 = true; - if (new File(thisDir, "metadata.json").exists()) - { - if (!parseMetadata()) - { - isValid1 = false; - } - } - else - { - System.err.println(thisDir+" is missing metadata.json"); - isValid1 = false; - } - - if (new File(thisDir, "leaderboard.json").exists()) - { - if (!parseLeaderboard()) - { - isValid1 = false; - } - } - else - { - System.err.println(thisDir+" is missing leaderboard.json"); - isValid1 = false; - } - - if (new File(thisDir, "notes.txt").exists()) - { - notes = new File(thisDir, "notes.txt"); - } - else - { - System.err.println(thisDir+" is missing notes.txt"); - isValid1 = false; - } - - if (bpm == 0.0) - { - System.err.println(thisDir+" is missing a bpm"); - isValid1 = false; - } - - if (numBeats == 0) - { - System.err.println(thisDir+" is missing the number of beats"); - isValid1 = false; - } - - isValid = isValid1; - } - - /** - * Reads in json metadata and assigns values to variables - */ - public boolean parseMetadata() - { - boolean isValid = true; - File file = new File(thisDir, "metadata.json"); - JSONParser jsonParser = new JSONParser(); //parser to read the file - - try(FileReader reader = new FileReader(file)) - { - Object obj = jsonParser.parse(reader); - JSONObject diffStuff = (JSONObject)(obj); //converts read object to a JSONObject - - if (diffStuff.containsKey("title")) - { - title = (String) diffStuff.get("title"); - } - else - { - System.err.println(file+" is missing properety title"); - isValid = false; - } - - if (diffStuff.containsKey("bpm")) - { - bpm = Double.parseDouble(diffStuff.get("bpm")+""); - } - else - { - System.err.println(file+" is missing properety bpm"); - isValid = false; - } - - if (diffStuff.containsKey("numBeats")) - { - numBeats = Integer.parseInt(diffStuff.get("numBeats")+""); - } - else - { - System.err.println(file+" is missing properety numBeats"); - isValid = false; - } - - if (diffStuff.containsKey("priority")) - { - priority = Integer.parseInt(diffStuff.get("priority")+""); - - } - else - { - System.err.println(file+" is missing properety priority"); - isValid = false; - } - } - catch (Exception e) - { - e.printStackTrace(); - isValid = false; - } - return isValid; - } - - /** - * Writes metadata to json file - */ - public void writeMetadata() - { - FileWriter fileWriter; - try - { - File file = new File(thisDir, "metadata.json"); - fileWriter = new FileWriter(file); - JSONObject obj = new JSONObject(); - obj.put("title", title); - obj.put("bpm", bpm); - obj.put("numBeats", numBeats); - obj.put("priority", priority); - obj.writeJSONString(fileWriter); - fileWriter.flush(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - /** - * Reads in json leaderboard and assigns populates list with leaderboardEntries - */ - public boolean parseLeaderboard() - { - boolean isValid = true; - File file = new File(thisDir, "leaderboard.json"); - JSONParser jsonParser = new JSONParser(); //parser to read the file - - try(FileReader reader = new FileReader(file)) - { - Object obj = jsonParser.parse(reader); - - JSONArray leaderboardStuff = (JSONArray)(obj); //converts read object to a JSONArray - - for (Object cur: leaderboardStuff) - { - JSONObject cur2 = (JSONObject) cur; - - String name = (String) cur2.get("name"); - int score = Integer.parseInt(""+cur2.get("score")); - String date = (String) cur2.get("date"); - leaderboard.add(new LeaderboardEntry(name, score, date)); - } - } - catch (Exception e) - { - isValid = false; - e.printStackTrace(); - } - return isValid; - } - - /** - * Writes leaderboard to json file - */ - public void writeLeaderboard() - { - FileWriter fileWriter; - try - { - File file = new File(thisDir, "leaderboard.json"); - fileWriter = new FileWriter(file); - //write the settings JSONObject instance to the file - JSONArray jsonArray = new JSONArray(); - for (LeaderboardEntry cur: leaderboard) - { - JSONObject obj = new JSONObject(); - obj.put("name", cur.getName()); - obj.put("score", cur.getScore()); - obj.put("date",cur.getDate()); - jsonArray.add(obj); - } - jsonArray.writeJSONString(fileWriter); - fileWriter.flush(); - - } - catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * Adds new leaderboardEntry to list and updates json file - * @param name: the players name - * @param score the players score - */ - public void addToLeaderboard(String name, int score) - { - leaderboard.add(new LeaderboardEntry(name, score, ""+LocalDate.now())); //do not delete this tho its not a placeholder - writeLeaderboard(); - } - - public ObservableList<LeaderboardEntry> getLeaderboard() - { - return leaderboard; - } - - public String toString() - { - return title; - } - - public boolean isValid() { - return isValid; - } - - public String getTitle() { - return title; - } - - @Override - public int compareTo(Difficulty d) { - return priority - d.priority; - } -} |