Files
ichni_Official/Packages/NB_FX/NBShaders2/Runtime/NBShaderFeatureCatalog.cs
SoulliesOfficial 40fa80cd70 NB_FX
2026-07-17 17:46:16 -04:00

107 lines
3.6 KiB
C#

using System.Collections.Generic;
namespace NBShader
{
/// <summary>
/// Hard-coded catalog of raw shader feature keywords managed by the NBShader runtime tier system.
/// Keywords not listed here are never changed by <see cref="NBShaderFeatureRuntime"/>.
/// </summary>
public static class NBShaderFeatureCatalog
{
/// <summary>
/// Shader name used by NBShader materials.
/// </summary>
public const string ShaderName = "Effects/NBShader";
/// <summary>
/// Default file name for optional NBShader runtime settings assets.
/// User projects decide how those assets are loaded at runtime.
/// </summary>
public const string RuntimeSettingsAssetName = "NBShaderFeatureRuntimeSettings";
/// <summary>
/// Raw shader_feature keywords currently managed by NBShader tiering. The '_' placeholder and
/// multi_compile keywords are intentionally excluded.
/// </summary>
public static readonly string[] RawKeywords =
{
"NB_DEBUG_DISSOLVE",
"NB_DEBUG_DISTORT",
"NB_DEBUG_FRESNEL",
"NB_DEBUG_MASK",
"NB_DEBUG_PNOISE",
"NB_DEBUG_VERTEX_OFFSET",
"VFX_SIX_WAY_ABSORPTION",
"_ALPHAMODULATE_ON",
"_ALPHAPREMULTIPLY_ON",
"_ALPHATEST_ON",
"_CHROMATIC_ABERRATION",
"_COLORMAPBLEND",
"_COLOR_RAMP",
"_COLOR_RAMP_MAP",
"_DEPTH_DECAL",
"_DEPTH_OUTLINE",
"_DISSOLVE",
"_DISSOLVE_MASK",
"_DISSOLVE_RAMP",
"_DISSOLVE_RAMP_MAP",
"_DISTANCE_FADE",
"_DISTORT_REFRACTION",
"_EMISSION",
"_FLIPBOOKBLENDING_ON",
"_FRESNEL",
"_FX_LIGHT_MODE_BLINN_PHONG",
"_FX_LIGHT_MODE_HALF_LAMBERT",
"_FX_LIGHT_MODE_PBR",
"_FX_LIGHT_MODE_SIX_WAY",
"_FX_LIGHT_MODE_UNLIT",
"_HOUDINI_VAT_DYNAMIC_REMESH",
"_HOUDINI_VAT_PARTICLE_SPRITE",
"_HOUDINI_VAT_RIGIDBODY",
"_HOUDINI_VAT_SOFTBODY",
"_MASKMAP_ON",
"_MASKMAP2_ON",
"_MASKMAP3_ON",
"_MATCAP",
"_NOISEMAP",
"_NOISE_MASKMAP",
"_NORMALMAP",
"_OVERRIDE_Z",
"_PARALLAX_MAPPING",
"_PARCUSTOMDATA_ON",
"_PROGRAM_NOISE",
"_PROGRAM_NOISE_SIMPLE",
"_PROGRAM_NOISE_VORONOI",
"_SCREEN_DISTORT_MODE",
"_SCRIPTABLETIME",
"_SHARED_UV",
"_SOFTPARTICLES_ON",
"_SPECULAR_COLOR",
"_STENCIL_WITHOUT_PLAYER",
"_TYFLOW_VAT_ABSOLUTE",
"_TYFLOW_VAT_RELATIVE",
"_TYFLOW_VAT_SKIN_PR",
"_TYFLOW_VAT_SKIN_PRSAVE",
"_TYFLOW_VAT_SKIN_PRSXYZ",
"_TYFLOW_VAT_SKIN_R",
"_UNSCALETIME",
"_VAT",
"_VAT_HOUDINI",
"_VAT_TYFLOW",
"_VERTEX_OFFSET",
"_VERTEX_OFFSET_MASKMAP"
};
internal static readonly HashSet<string> RawKeywordSet = new HashSet<string>(RawKeywords);
/// <summary>
/// Returns true when the keyword is explicitly managed by the NBShader feature tier system.
/// Catalog-external keywords must be ignored by tier application and build stripping.
/// </summary>
public static bool IsManagedKeyword(string keyword)
{
return !string.IsNullOrEmpty(keyword) && RawKeywordSet.Contains(keyword);
}
}
}