33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
using Minesweeper.Core;
|
|
using UnityEngine;
|
|
|
|
namespace Minesweeper.Infrastructure
|
|
{
|
|
public sealed class PlayerPrefsGameSettingsStorage : IGameSettingsStorage
|
|
{
|
|
private const string SizeXKey = "Minesweeper.Settings.SizeX";
|
|
private const string SizeYKey = "Minesweeper.Settings.SizeY";
|
|
private const string MinesCountKey = "Minesweeper.Settings.MinesCount";
|
|
|
|
public bool TryLoad(out GameSettingsValue value)
|
|
{
|
|
if (!PlayerPrefs.HasKey(SizeXKey) || !PlayerPrefs.HasKey(SizeYKey) || !PlayerPrefs.HasKey(MinesCountKey))
|
|
{
|
|
value = default;
|
|
return false;
|
|
}
|
|
|
|
value = new GameSettingsValue(PlayerPrefs.GetInt(SizeXKey), PlayerPrefs.GetInt(SizeYKey), PlayerPrefs.GetInt(MinesCountKey));
|
|
return true;
|
|
}
|
|
|
|
public void Save(GameSettingsValue value)
|
|
{
|
|
PlayerPrefs.SetInt(SizeXKey, value.SizeX);
|
|
PlayerPrefs.SetInt(SizeYKey, value.SizeY);
|
|
PlayerPrefs.SetInt(MinesCountKey, value.MinesCount);
|
|
PlayerPrefs.Save();
|
|
}
|
|
}
|
|
}
|