Files
sbox-public/engine/Sandbox.System/SerializedObject/SerializedProperty.Proxy.cs
Garry Newman fd25a51616 Serializedobject Fixes (#4322)
* Add ControlWidget.OnLabelContextMenu
* Add TypeHintAttribute
* Fix nameof stuff
* If SerializedProperty is an object and value type, inject a value before creating a SerializedObject
2026-03-17 19:17:44 +00:00

47 lines
1.7 KiB
C#

namespace Sandbox;
public abstract partial class SerializedProperty
{
/// <summary>
/// Allows easily creating SerializedProperty classes that wrap other properties.
/// </summary>
public abstract class Proxy : SerializedProperty
{
protected abstract SerializedProperty ProxyTarget { get; }
public override SerializedObject Parent => ProxyTarget.Parent;
public override bool IsProperty => ProxyTarget.IsProperty;
public override bool IsField => ProxyTarget.IsField;
public override bool IsMethod => ProxyTarget.IsMethod;
public override string Name => ProxyTarget.Name;
public override string DisplayName => ProxyTarget.DisplayName;
public override string Description => ProxyTarget.Description;
public override string GroupName => ProxyTarget.GroupName;
public override int Order => ProxyTarget.Order;
public override bool IsEditable => ProxyTarget.IsEditable;
public override bool IsPublic => ProxyTarget.IsPublic;
public override Type PropertyType => ProxyTarget.PropertyType;
public override string SourceFile => ProxyTarget.SourceFile;
public override int SourceLine => ProxyTarget.SourceLine;
public override bool HasChanges => ProxyTarget.HasChanges;
public override bool IsValid => ProxyTarget.IsValid();
public override ref AsAccessor As => ref base.As;
public override bool TryGetAsObject( out SerializedObject obj )
{
CreateObjectValue();
return ProxyTarget.TryGetAsObject( out obj );
}
public override T GetValue<T>( T defaultValue = default )
{
return ProxyTarget.GetValue( defaultValue );
}
public override void SetValue<T>( T value ) => ProxyTarget.SetValue( value );
public override IEnumerable<Attribute> GetAttributes() => ProxyTarget.GetAttributes();
}
}