namespace Sandbox
{
///
/// This will invoke a method when the property changes. It can be used with any property but is especially useful
/// when combined with [Sync] or [ConVar].
///
/// If no name is provided, we will try to call On[PropertyName]Changed. The callback should have 2 arguments - oldValue and newValue, both of the same type as the property itself.
///
[AttributeUsage( AttributeTargets.Property )]
[CodeGenerator( CodeGeneratorFlags.Instance | CodeGeneratorFlags.Static | CodeGeneratorFlags.WrapPropertySet, "Sandbox.ConsoleSystem.OnChangePropertySet", 10 )]
public class ChangeAttribute : Attribute
{
///
/// Name of the method to call on change. If no name is provided, we will try to call On[PropertyName]Changed.
///
public string Name { get; set; }
public ChangeAttribute( string name = null )
{
Name = name;
}
}
}