From 136c127e7edcc5e03a79a70c732f92b8af5a4e50 Mon Sep 17 00:00:00 2001
From: Martin <ms618@hdm-stuttgart.de>
Date: Tue, 16 Jan 2024 12:07:48 +0100
Subject: [PATCH] Update: AppSettings.java (added setter methods; both fields
 now type "double") Update. Persistence.java (implemented methods to reset
 settings) Update: PlayerStatistics.java (moved method to calculate ingametime
 in hours from Persistence.java to here) Update: RuntimeInfo.java (changed
 method "setGameMap" to get whole instance of MapData Class of chosen map
 instead of only the string of the actual mapdata; moved method to calculate
 ingametime in hours to PlayerStatistics.java)

---
 .../Model/DataStorage/Classes/AppSettings.java    | 14 +++++++++++---
 .../Model/DataStorage/Classes/Persistence.java    | 15 +++++++++++----
 .../DataStorage/Classes/PlayerStatistics.java     |  4 ++++
 .../Model/DataStorage/Classes/RuntimeInfo.java    | 11 ++++-------
 4 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/AppSettings.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/AppSettings.java
index 24d7de8b..a21c4d93 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/AppSettings.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/AppSettings.java
@@ -3,19 +3,27 @@ package de.hdm_stuttgart.battlearena.Model.DataStorage.Classes;
 public class AppSettings {
 
     private Double sfxVolume;
-    private int musicVolume;
+    private Double musicVolume;
 
 
-    public AppSettings(Double sfxVolume, int musicVolume) {
+    public AppSettings(Double sfxVolume, Double musicVolume) {
         this.sfxVolume = sfxVolume;
         this.musicVolume = musicVolume;
     }
 
+    public void setSfxVolume(Double sfxVolume) {
+        this.sfxVolume = sfxVolume;
+    }
+
     public Double getSfxVolume() {
         return sfxVolume;
     }
 
-    public int getMusicVolume() {
+    public void setMusicVolume(Double musicVolume) {
+        this.musicVolume = musicVolume;
+    }
+
+    public Double getMusicVolume() {
         return musicVolume;
     }
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java
index f2fcc059..c3f29bd8 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Persistence.java
@@ -172,19 +172,19 @@ public class Persistence {
         }
     }
 
-    public String getGameMap(String mapSelected, boolean choseCoremaps) throws DatabaseException{
+    public MapData getGameMap(String mapSelected, boolean choseCoremaps) throws DatabaseException{
 
         String mapID = mapSelected.substring(mapSelected.indexOf("(") + 1, mapSelected.length() - 1);
         if (choseCoremaps) {
             for (int index = 0; index < coreMaps.size(); index++) {
                 if (coreMaps.get(index).getMapID().equals(mapID)) {
-                    return coreMaps.get(index).getMapID();
+                    return coreMaps.get(index);
                 }
             }
         } else {
             for (int index = 0; index < communityMaps.size(); index++) {
                 if (communityMaps.get(index).getMapID().equals(mapID)) {
-                    return coreMaps.get(index).getMapID();
+                    return coreMaps.get(index);
                 }
             }
         }
@@ -421,7 +421,14 @@ public class Persistence {
     }
 
     public void resetSettings(){
-        //implement me (user can click button to reset settings to default values)
+        settings.setSfxVolume(0.5);
+        settings.setMusicVolume(0.5);
+        try {
+            gsonHandler.saveSettings(settings);
+        }
+        catch(Exception e){
+            log.error(e);
+        }
     }
 
     public void resetCoreMaps(){
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/PlayerStatistics.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/PlayerStatistics.java
index 41a54e7e..4f8783f2 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/PlayerStatistics.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/PlayerStatistics.java
@@ -67,6 +67,10 @@ public class PlayerStatistics {
         return gameTime;
     }
 
+    public int getGameTimeInHours(){
+        return gameTime / 3600;
+    }
+
     protected void addGameTime(int gameTime) {
         this.gameTime = this.gameTime + gameTime;
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java
index 12c229b2..d533b9bb 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/RuntimeInfo.java
@@ -14,6 +14,7 @@ public class RuntimeInfo {
     private static final RuntimeInfo runtimeInfoSingleton = new RuntimeInfo();
     private final Persistence persistenceInst = Persistence.getInstance();
     protected String mapDataGame;
+    protected MapData mapGame;
     protected boolean offlineMode;  //if Account-Type is online but no SQL connection: start game without stats tracking
 
 
@@ -27,7 +28,7 @@ public class RuntimeInfo {
         return mapDataGame;
     }
 
-    public MapData createMap(String mapName, String mapData) throws ParserException {
+    public MapData generateMap(String mapName, String mapData) throws ParserException {
         try {
             Parser.mapDataValid(mapData);
             Parser.mapNameValid(mapName);
@@ -41,16 +42,12 @@ public class RuntimeInfo {
 
     public void setGameMap(String mapSelected, boolean choseCoremaps){
         try {
-            mapDataGame = persistenceInst.getGameMap(mapSelected, choseCoremaps);
+            mapGame = persistenceInst.getGameMap(mapSelected, choseCoremaps);
+            mapDataGame = mapGame.getMapData();
         }
         catch(Exception e){
             log.error(e);
         }
     }
 
-
-    public int gameTimeInHours(){
-        return persistenceInst.getStatistics().getGameTime() / 3600;
-    }
-
 }
-- 
GitLab