diff --git a/Assets/Cryville/Crtr/Config/IPropertyAdapter.cs b/Assets/Cryville/Crtr/Config/IPropertyAdapter.cs index cc80eee..2bc9dd3 100644 --- a/Assets/Cryville/Crtr/Config/IPropertyAdapter.cs +++ b/Assets/Cryville/Crtr/Config/IPropertyAdapter.cs @@ -14,6 +14,7 @@ namespace Cryville.Crtr.Config { object GetValue(); void SetValue(object value); event Action ValueChanged; + void Invalidate(); object MapValue(object value); bool SetMapped { get; } object MapValueInverse(object value); @@ -38,7 +39,10 @@ namespace Cryville.Crtr.Config { public object GetValue() { return _prop.GetValue(_target, null); } public void SetValue(object value) { _prop.SetValue(_target, value, null); } - public event Action ValueChanged { add { } remove { } } + public event Action ValueChanged; + public void Invalidate() { + ValueChanged?.Invoke(); + } readonly double _precision; readonly double _step; diff --git a/Assets/Cryville/Crtr/Config/RulesetConfigPropertyAdapter.cs b/Assets/Cryville/Crtr/Config/RulesetConfigPropertyAdapter.cs index ab1c209..edfe107 100644 --- a/Assets/Cryville/Crtr/Config/RulesetConfigPropertyAdapter.cs +++ b/Assets/Cryville/Crtr/Config/RulesetConfigPropertyAdapter.cs @@ -30,7 +30,7 @@ namespace Cryville.Crtr.Config { public void SetValue(string key, object value) { _store[key] = value; foreach (var prop in _props) { - prop.OnValueChanged(); + prop.Invalidate(); } } } @@ -79,9 +79,8 @@ namespace Cryville.Crtr.Config { } public event Action ValueChanged; - public void OnValueChanged() { - var ev = ValueChanged; - if (ev != null) ev(); + public void Invalidate() { + ValueChanged?.Invoke(); } public bool SetMapped { get { return false; } }