text: #pragma once
  
  #include "RE/BSLightingShaderMaterialBase.h"
  
  
  namespace RE
  {
  	class NiSourceTexture;
  
  
  	class BSLightingShaderMaterialFacegen : public BSLightingShaderMaterialBase
  	{
  	public:
  		inline static constexpr auto RTTI = RTTI_BSLightingShaderMaterialFacegen;
  
  
  		virtual ~BSLightingShaderMaterialFacegen();	 // 00
  
  		// override (BSLightingShaderMaterialBase)
  		virtual BSShaderMaterial* Create() override;																												 // 01
  		virtual void			  CopyMembers(BSShaderMaterial* a_other) override;																					 // 02
  		virtual UInt32			  ComputeCRC32(void) override;																										 // 04
  		virtual Feature			  GetFeature() const override;																										 // 06 - { return Feature::kFaceGen; }
  		virtual void			  OnLoadTextureSet(UInt64 a_arg1, BSTextureSet* a_textureSet) override;																 // 08
  		virtual void			  ClearTextures() override;																											 // 09
  		virtual void			  ReceiveValuesFromRootMaterial(bool a_skinned, bool a_rimLighting, bool a_softLighting, bool a_backLighting, bool a_MSN) override;	 // 0A
  		virtual void			  GetTextures(void) override;																										 // 0B
  
  		static BSLightingShaderMaterialFacegen* CreateMaterial();
  
  
  		// members
  		NiPointer<NiSourceTexture> tintTexture;		   // A0
  		NiPointer<NiSourceTexture> detailTexture;	   // A8
  		NiPointer<NiSourceTexture> subsurfaceTexture;  // B0
  
  	private:
  		BSLightingShaderMaterialFacegen* ctor();
  	};
  	STATIC_ASSERT(sizeof(BSLightingShaderMaterialFacegen) == 0xB8);
  }
  