mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 11:39:43 +00:00
51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System;
|
|
|
|
namespace BepInEx.Configuration;
|
|
|
|
/// <summary>
|
|
/// Provides access to a single setting inside of a <see cref="Configuration.ConfigFile" />.
|
|
/// </summary>
|
|
/// <typeparam name="T">Type of the setting.</typeparam>
|
|
[Obsolete("Use ConfigFile from new Bind overloads instead")]
|
|
public sealed class ConfigWrapper<T>
|
|
{
|
|
internal ConfigWrapper(ConfigEntry<T> configEntry)
|
|
{
|
|
ConfigEntry = configEntry ?? throw new ArgumentNullException(nameof(configEntry));
|
|
|
|
configEntry.ConfigFile.SettingChanged += (sender, args) =>
|
|
{
|
|
if (args.ChangedSetting == configEntry) SettingChanged?.Invoke(sender, args);
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// Entry of this setting in the <see cref="Configuration.ConfigFile" />.
|
|
/// </summary>
|
|
public ConfigEntry<T> ConfigEntry { get; }
|
|
|
|
/// <summary>
|
|
/// Unique definition of this setting.
|
|
/// </summary>
|
|
public ConfigDefinition Definition => ConfigEntry.Definition;
|
|
|
|
/// <summary>
|
|
/// Config file this setting is inside of.
|
|
/// </summary>
|
|
public ConfigFile ConfigFile => ConfigEntry.ConfigFile;
|
|
|
|
/// <summary>
|
|
/// Value of this setting.
|
|
/// </summary>
|
|
public T Value
|
|
{
|
|
get => ConfigEntry.Value;
|
|
set => ConfigEntry.Value = value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Fired when the setting is changed. Does not detect changes made outside from this object.
|
|
/// </summary>
|
|
public event EventHandler SettingChanged;
|
|
}
|