Game/PostProcessing/PostProcessResource.cs
public enum PostProcessGroup
{
Effects,
Overlay,
Shaders,
Textures,
Misc
}
[AssetType( Name = "Post Process Effect", Extension = "spp", Category = "Sandbox", Flags = AssetTypeFlags.NoEmbedding | AssetTypeFlags.IncludeThumbnails )]
public class PostProcessResource : GameResource, IDefinitionResource
{
[Property]
public PrefabFile Prefab { get; set; }
[Property]
public PostProcessGroup Group { get; set; } = PostProcessGroup.Misc;
[Property]
public Texture Icon { get; set; }
[Property]
public string Title { get; set; }
[Property]
public string Description { get; set; }
[Property]
public bool IncludeCode { get; set; } = true;
public override Bitmap RenderThumbnail( ThumbnailOptions options )
{
if ( Icon is null ) return default;
return Icon.GetBitmap( 0 );
}
protected override Bitmap CreateAssetTypeIcon( int width, int height )
{
return CreateSimpleAssetTypeIcon( "🎨", width, height, "#35B851" );
}
public override void ConfigurePublishing( ResourcePublishContext context )
{
if ( Prefab is null )
{
context.SetPublishingDisabled( "Invalid: missing a prefab" );
return;
}
if ( Icon is null )
{
context.SetPublishingDisabled( "Invalid: missing an icon" );
return;
}
context.IncludeCode = IncludeCode;
}
}