namespace NiAkaDev.EzMirror
{
    using UnityEngine;
    using VRC.SDK3.Components;

    [CreateAssetMenu(
        fileName = "EzMirrorProfile",
        menuName = "NiAka/EzMirror/プロファイルアセット"
    )]
    public class EzMirrorProfileAsset : ScriptableObject
    {
        [Tooltip("インスペクタや切り替えUIで見分けるための名前です。例: HQミラー、半透明ミラー、LQミラー")]
        public string profileName;

        [Tooltip("このプロファイルを初期状態 / Reset先として使う場合はONにします。")]
        public bool isDefault;

        [Tooltip("このプロファイル選択中にミラー本体を表示する場合はONにします。")]
        public bool mirrorEnabled = true;

        [Tooltip("PC向けだけで使うプロファイルの場合はONにします。Quest / Android / iOSではスキップされます。")]
        public bool pcOnly;

        [Tooltip("VRC Mirror Reflection の Pixel Light 無効化設定です。通常はONのままで問題ありません。")]
        public bool disablePixelLights = true;

        [Tooltip("VRC Mirror Reflection の Mirror Occlusion 無効化設定です。通常はONのままで問題ありません。")]
        public bool turnOffMirrorOcclusion = true;

        [Tooltip("ミラーに映すレイヤーです。LQミラーでは背景クリア用の MirrorReflection レイヤーも含めます。")]
        public LayerMask reflectLayers;

        [Tooltip("ミラー用カメラの背景の消し方です。LQミラーで背景を消す場合は Solid Color を使います。")]
        public MirrorClearFlags cameraClearFlags;

        [Tooltip("背景に使う Skybox Material です。未設定なら通常は使いません。")]
        public Material customSkybox;

        [Tooltip("背景色です。LQミラーで背景を透明にする場合は Alpha 0 にします。")]
        public Color customClearColor = new Color(0f, 0f, 0f, 1f);

        [Tooltip("ミラー用マテリアル側で背景を透明化する場合はONにします。")]
        public bool hideBackground;

        [Range(0f, 1f)]
        [Tooltip("ミラーの透明度です。0 は不透明、1 は透明です。")]
        public float transparency;

        [Tooltip("このプロファイルの元になる基盤マテリアルです。通常は付属の既定値のままで問題ありません。")]
        public Material baseMaterial;

        [Tooltip("切り替えUIに表示するアイコン画像です。未設定でも動作します。")]
        public Sprite iconSprite;

        [Tooltip("切り替えUIに表示するアイコン色です。白線アイコンをこの色で着色します。")]
        public Color iconColor = Color.white;
    }
}
