A small helper that stores a panel type name and resolves it to a TypeDescription via the game's TypeLibrary. It keeps scene serialization stable by using a string name and resolves it to a ScreenPanel-derived type when needed.
using Sandbox;
namespace PanelRenderTarget;
// Stores a panel type by name so scene serialization remains stable.
public sealed class PanelTypeReference
{
public string TypeName { get; set; }
public TypeDescription Resolve()
{
if ( string.IsNullOrWhiteSpace( TypeName ) )
return null;
var typeLibrary = Game.TypeLibrary;
if ( typeLibrary is null )
return null;
return typeLibrary.GetType( typeof( PanelRenderTarget.ScreenPanel ), TypeName, true, true );
}
}