Files
Bombaleila/Assets/ThunderWire Studio/UHFPS/Content/Scripts/Runtime/Utilities/Structs/ObservableValue.cs
2026-03-03 05:27:03 +05:00

50 lines
1.1 KiB
C#

using System.Collections.Generic;
namespace UHFPS.Runtime
{
public class ObservableValue<T>
{
private T _value;
private bool _isChanged;
public T Value
{
get => _value;
set
{
if (!EqualityComparer<T>.Default.Equals(_value, value))
{
_value = value;
_isChanged = true;
}
}
}
public T SilentValue
{
get => _value;
set => _value = value;
}
public bool IsChanged => _isChanged;
public ObservableValue(T initialValue)
{
_value = initialValue;
_isChanged = false;
}
public ObservableValue()
{
_value = default;
_isChanged = false;
}
public void ResetFlag()
{
_isChanged = false;
}
public override string ToString() => $"[{_isChanged}] {_value}";
}
}