Editor/PbrGeneratorResult.cs
using System;
using Sandbox;

public sealed class PbrGeneratorResult : IDisposable
{
	public Bitmap Albedo { get; set; }
	public Bitmap Height { get; set; }
	public Bitmap Normal { get; set; }
	public Bitmap Roughness { get; set; }
	public Bitmap AmbientOcclusion { get; set; }
	public Bitmap Metallic { get; set; }
	public Bitmap Orm { get; set; }

	public Bitmap GetMap( PbrMapType mapType )
	{
		return mapType switch
		{
			PbrMapType.Albedo => Albedo,
			PbrMapType.Height => Height,
			PbrMapType.Normal => Normal,
			PbrMapType.Roughness => Roughness,
			PbrMapType.AmbientOcclusion => AmbientOcclusion,
			PbrMapType.Metallic => Metallic,
			PbrMapType.Orm => Orm,
			_ => Albedo
		};
	}

	public void Dispose()
	{
		Albedo?.Dispose();
		Height?.Dispose();
		Normal?.Dispose();
		Roughness?.Dispose();
		AmbientOcclusion?.Dispose();
		Metallic?.Dispose();
		Orm?.Dispose();

		Albedo = null;
		Height = null;
		Normal = null;
		Roughness = null;
		AmbientOcclusion = null;
		Metallic = null;
		Orm = null;
	}
}