Editor/BuildSettings.cs
namespace BspImport;
public class BuildSettings
{
[Property, FilePath( Extension = "bsp" )]
public string FilePath { get; set; } = string.Empty;
/// <summary>
/// Include world geometry, including displacements.
/// </summary>
[Category( "Geometry" )]
[Property]
public bool ImportWorldGeometry { get; set; } = true;
/// <summary>
/// Controls the maximum number of faces per MeshComponent. This is necessary because editor performance quickly degrades with only a couple hundred faces per Component.
/// </summary>
[Range( 32, 1024 )]
[Step( 32 )]
[Category( "Geometry" )]
[Property, ShowIf( nameof( ImportWorldGeometry ), true )]
public int ChunkSize { get; set; } = 256;
/// <summary>
/// Load and Apply material paths to world geometry. NOTE: Does not create/port any assets.
/// </summary>
[Category( "Geometry" )]
[Property, ShowIf( nameof( ImportWorldGeometry ), true )]
public bool LoadMaterials { get; set; } = false;
/// <summary>
/// Include Entities (Lights, Brush Entities, etc) as GameObjects.
/// </summary>
[Category( "Entities" )]
[Property]
public bool ImportEntities { get; set; } = true;
/// <summary>
/// Load and spawn Model paths as Props, including static props. NOTE: Does not create/port any assets.
/// </summary>
[Category( "Entities" )]
[Property, ShowIf( nameof( ImportEntities ), true )]
public bool LoadModels { get; set; } = false;
/// <summary>
/// Cull 3D skybox Geometry and Models.
/// </summary>
[Property]
public bool CullSkybox { get; set; } = true;
}