Files
sbox-public/engine/Sandbox.System/Attributes/ChangeAttribute.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

24 lines
924 B
C#

namespace Sandbox
{
/// <summary>
/// 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].
/// <br/><br/>
/// 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.
/// </summary>
[AttributeUsage( AttributeTargets.Property )]
[CodeGenerator( CodeGeneratorFlags.Instance | CodeGeneratorFlags.Static | CodeGeneratorFlags.WrapPropertySet, "Sandbox.ConsoleSystem.OnChangePropertySet", 10 )]
public class ChangeAttribute : Attribute
{
/// <summary>
/// Name of the method to call on change. If no name is provided, we will try to call On[PropertyName]Changed.
/// </summary>
public string Name { get; set; }
public ChangeAttribute( string name = null )
{
Name = name;
}
}
}