Scripts/Settings/Configuration.cs
using System;
namespace Milaine.Settings;
public class ConfigurationData {
public string Language { get; set; } = "en";
}
public sealed class Configuration : Component {
private readonly string filename = "settings.cfg";
[Property]
public string Language { get; set; } = "en";
protected override void OnAwake() {
if (!FileSystem.Data.FileExists(filename)) {
SaveConfig();
return;
}
LoadConfig();
}
public void LoadConfig() {
var config = FileSystem.Data.ReadJson<ConfigurationData>(filename);
Language = config.Language;
}
public void SaveConfig() {
try {
var config = new ConfigurationData { Language = Language };
FileSystem.Data.WriteJson(filename, config);
}
catch (Exception ex) {
Log.Warning($"Error to try create configuration file: {ex.Message}");
}
}
}