Files
SlayTheSpire2.LAN.Multiplayer/SlayTheSpire2.LAN.Multiplayer/Helpers/SettingsHelper.cs
T
2026-03-08 08:50:31 +08:00

37 lines
1.1 KiB
C#

using System.Text.Json;
using MegaCrit.Sts2.Core.Saves;
using SlayTheSpire2.LAN.Multiplayer.Models;
namespace SlayTheSpire2.LAN.Multiplayer.Helpers
{
internal class SettingsHelper
{
private static readonly Lazy<SettingsHelper> Lazy = new(() => new SettingsHelper());
public static SettingsHelper Instance => Lazy.Value;
public readonly SettingsModel SettingsModel;
private readonly GodotFileIo _modsDir = new($"{UserDataPathProvider.GetAccountScopedBasePath(null)}/mods");
private SettingsHelper()
{
if (_modsDir.FileExists("lan_settings.json"))
{
SettingsModel =
JsonSerializer.Deserialize<SettingsModel>(_modsDir.ReadFile("lan_settings.json") ?? string.Empty) ??
new SettingsModel();
}
else
{
SettingsModel = new SettingsModel();
}
}
public void WriteSettings()
{
_modsDir.WriteFile("lan_settings.json",
JsonSerializer.Serialize(SettingsModel, SettingsModelContext.Default.SettingsModel));
}
}
}