settings manager

This commit is contained in:
SergoDobro 2023-08-17 10:43:49 +03:00
parent 634a986e70
commit a12a7bad36

View file

@ -7,6 +7,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework;
using Newtonsoft.Json.Serialization;
namespace DangerousD.GameCore.Managers namespace DangerousD.GameCore.Managers
{ {
@ -21,10 +22,12 @@ namespace DangerousD.GameCore.Managers
public void SetResolution(Point resolution) public void SetResolution(Point resolution)
{ {
settingsContainer.Resolution = resolution; settingsContainer.Resolution = resolution;
AppManager.Instance.resolution = resolution;
} }
public void SetMainVolume(float volume) public void SetMainVolume(float volume)
{ {
settingsContainer.MainVolume = MainVolume; settingsContainer.MainVolume = MainVolume;
///AppManager.Instance.SoundManager.
} }
public void SetMusicVolume(float volume) public void SetMusicVolume(float volume)
@ -45,22 +48,30 @@ namespace DangerousD.GameCore.Managers
{ {
if (!File.Exists("GameSettings.txt")) if (!File.Exists("GameSettings.txt"))
{ {
File.Create("GameSettings.txt");
SaveSettings(); SaveSettings();
return; return;
} }
var serializedObject = JsonConvert.DeserializeObject<SettingsContainer>(File.ReadAllText("GameSettings.txt")); settingsContainer = JsonConvert.DeserializeObject<SettingsContainer>(File.ReadAllText("GameSettings.txt"));
SetIsFullScreen(settingsContainer.IsFullScreen);
SetMainVolume(settingsContainer.MainVolume);
SetMusicVolume(settingsContainer.MusicVolume);
SetResolution(settingsContainer.Resolution);
SetSoundEffectsVolume(settingsContainer.SoundEffectsVolume);
} }
public void SaveSettings() public void SaveSettings()
{ {
if (!File.Exists("GameSettings.txt")) using (StreamWriter streamWriter = new StreamWriter("GameSettings.txt"))
File.Create("GameSettings.txt"); {
File.WriteAllText("GameSettings.txt", JsonConvert.SerializeObject(settingsContainer)); string _str = JsonConvert.SerializeObject(settingsContainer);
streamWriter.Write(_str);
}
} }
} }
[Serializable]
public class SettingsContainer public class SettingsContainer
{ {
[JsonProperty("IsFullScreen")] [JsonProperty("IsFullScreen")]