/**
 * Copyright(c) Live2D Inc. All rights reserved.
 *
 * Use of this source code is governed by the Live2D Open Software license
 * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
 */
using UnityEngine;
namespace Live2D.Cubism.Rendering
{
    /// 
    /// Default materials.
    /// 
    public static class CubismBuiltinMaterials
    {
        /// 
        /// Default unlit material.
        /// 
        public static Material Unlit
        {
            get { return LoadUnlitMaterial("Unlit"); }
        }
        /// 
        /// Default unlit, additively blending material.
        /// 
        public static Material UnlitAdditive
        {
            get { return LoadUnlitMaterial("UnlitAdditive"); }
        }
        /// 
        /// Default unlit, multiply blending material.
        /// 
        public static Material UnlitMultiply
        {
            get { return LoadUnlitMaterial("UnlitMultiply"); }
        }
        /// 
        /// Default unlit masked material.
        /// 
        public static Material UnlitMasked
        {
            get { return LoadUnlitMaterial("UnlitMasked"); }
        }
        /// 
        /// Default unlit masked, additively blending material.
        /// 
        public static Material UnlitAdditiveMasked
        {
            get { return LoadUnlitMaterial("UnlitAdditiveMasked"); }
        }
        /// 
        /// Default unlit masked, multiply blending material.
        /// 
        public static Material UnlitMultiplyMasked
        {
            get { return LoadUnlitMaterial("UnlitMultiplyMasked"); }
        }
        /// 
        /// Default unlit masked inverted material.
        /// 
        public static Material UnlitMaskedInverted
        {
            get { return LoadUnlitMaterial("UnlitMaskedInverted"); }
        }
        /// 
        /// Default unlit masked inverted, additively blending material.
        /// 
        public static Material UnlitAdditiveMaskedInverted
        {
            get { return LoadUnlitMaterial("UnlitAdditiveMaskedInverted"); }
        }
        /// 
        /// Default unlit masked inverted, multiply blending material.
        /// 
        public static Material UnlitMultiplyMaskedInverted
        {
            get { return LoadUnlitMaterial("UnlitMultiplyMaskedInverted"); }
        }
        /// 
        /// Default unlit material.
        /// 
        public static Material UnlitCulling
        {
            get { return LoadUnlitMaterial("UnlitCulling"); }
        }
        /// 
        /// Default unlit, additively blending material.
        /// 
        public static Material UnlitAdditiveCulling
        {
            get { return LoadUnlitMaterial("UnlitAdditiveCulling"); }
        }
        /// 
        /// Default unlit, multiply blending material.
        /// 
        public static Material UnlitMultiplyCulling
        {
            get { return LoadUnlitMaterial("UnlitMultiplyCulling"); }
        }
        /// 
        /// Default unlit masked material.
        /// 
        public static Material UnlitMaskedCulling
        {
            get { return LoadUnlitMaterial("UnlitMaskedCulling"); }
        }
        /// 
        /// Default unlit masked, additively blending material.
        /// 
        public static Material UnlitAdditiveMaskedCulling
        {
            get { return LoadUnlitMaterial("UnlitAdditiveMaskedCulling"); }
        }
        /// 
        /// Default unlit masked, multiply blending material.
        /// 
        public static Material UnlitMultiplyMaskedCulling
        {
            get { return LoadUnlitMaterial("UnlitMultiplyMaskedCulling"); }
        }
        /// 
        /// Default unlit masked inverted material.
        /// 
        public static Material UnlitMaskedInvertedCulling
        {
            get { return LoadUnlitMaterial("UnlitMaskedInvertedCulling"); }
        }
        /// 
        /// Default unlit masked inverted, additively blending material.
        /// 
        public static Material UnlitAdditiveMaskedInvertedCulling
        {
            get { return LoadUnlitMaterial("UnlitAdditiveMaskedInvertedCulling"); }
        }
        /// 
        /// Default unlit masked inverted, multiply blending material.
        /// 
        public static Material UnlitMultiplyMaskedInvertedCulling
        {
            get { return LoadUnlitMaterial("UnlitMultiplyMaskedInvertedCulling"); }
        }
        /// 
        /// Default mask material.
        /// 
        public static Material Mask
        {
            get { return LoadMaskMaterial(); }
        }
        /// 
        /// Default culled mask material.
        /// 
        public static Material MaskCulling
        {
            get { return LoadMaskCullingMaterial(); }
        }
        #region Helper Methods
        /// 
        /// Resource directory of builtin s.
        /// 
        private const string ResourcesDirectory = "Live2D/Cubism/Materials";
        /// 
        /// Loads an unlit material.
        /// 
        /// Material name.
        /// The material.
        private static Material LoadUnlitMaterial(string name)
        {
            return Resources.Load(ResourcesDirectory + "/" + name);
        }
        /// 
        /// Loads an mask material.
        /// 
        /// The material.
        private static Material LoadMaskMaterial()
        {
            return Resources.Load(ResourcesDirectory + "/Mask");
        }
        /// 
        /// Loads an mask culling material.
        /// 
        /// The material.
        private static Material LoadMaskCullingMaterial()
        {
            return Resources.Load(ResourcesDirectory + "/MaskCulling");
        }
        #endregion
    }
}