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