using System.IO;
using Newtonsoft.Json;
namespace StardewModdingAPI.Advanced
{
/// Wraps a configuration file with IO methods for convenience.
public abstract class ConfigFile : IConfigFile
{
/*********
** Accessors
*********/
/// Provides methods for interacting with the mod directory, including read/writing the config file.
public IModHelper ModHelper { get; set; }
/// The file path from which the model was loaded, relative to the mod directory.
public string FilePath { get; set; }
/*********
** Public methods
*********/
/// Reparse the underlying file and update this model.
public void Reload()
{
string json = File.ReadAllText(Path.Combine(this.ModHelper.DirectoryPath, this.FilePath));
JsonConvert.PopulateObject(json, this);
}
/// Save this model to the underlying file.
public void Save()
{
this.ModHelper.WriteJsonFile(this.FilePath, this);
}
}
}