using System.Collections.Generic;
using UnityEngine;

namespace Mono
{
    public class IceFrozen : MonoBehaviour
    {
        [Header("冰冻效果材质")]
        public Material IceMaterial;

        public bool IsFroze { get; protected set; }

        private SkinnedMeshRenderer Render;
        private List<Material> NewMaterials = new();
        private void Awake()
        {
            if(IceMaterial == null)
            {
                //Log.Error($"Not set IceMaterial @{gameObject.name}");
                return;
            }

            IsFroze = false;
            Render = transform.GetComponentInChildren<SkinnedMeshRenderer>();
            foreach(var mat in Render.sharedMaterials)
            {
                NewMaterials.Add( mat );
            }
            
            IceMaterial.SetFloat("_Frezz", 0.0f);
        }

        public void StartFroze()
        {
            if (IsFroze) return;

            IsFroze = true;
            NewMaterials.Add(IceMaterial);
            Render.sharedMaterials = NewMaterials.ToArray();
        }

        public void ClearFroze()
        {
            if(!IsFroze) return;
            IsFroze = false;

            NewMaterials.Remove(IceMaterial);
            Render.sharedMaterials = NewMaterials.ToArray();
        }
    }
}