using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// 
/// 柜门
/// 
public class Device_CabinetDoor : Device_Base
{
    /// 
    /// 验电位置
    /// 
    public Transform testPosAndRot;
    /// 
    /// 是否打开
    /// 
    public bool isOpen;
    /// 
    /// 是否带点
    /// 
    public bool hasElectricity;
    public void Open()
    {
        Debug.Log("开门");
        startAction?.Invoke();
        //开锁
        transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(-45f, 0, 0), 1).OnComplete(() =>
        {
            //开门
            transform.DOLocalRotate(new Vector3(0, 0, 180), 3).OnComplete(() =>
            {
                isOpen = true;
                int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
                endAction?.Invoke();
            });
        });
    }
    public void Close()
    {
        Debug.Log("关门");
        startAction?.Invoke();
        //关门
        transform.DOLocalRotate(new Vector3(0, 0, 0), 3).OnComplete(() =>
          {
              //关锁
              transform.Find("计量柜锁2/计量柜锁3").DOLocalRotate(new Vector3(0, 0, 0), 1).OnComplete(() =>
                {
                    isOpen = false;
                    int result = (triggerAction == null ? 0 : triggerAction.Invoke(triggerName, true));
                    endAction?.Invoke();
                });
          });
    }
    protected override void OnMDown()
    {
        if (LiveSceneManager.Instance.currentTool != null && LiveSceneManager.Instance.currentTool.name == "验电笔")
            return;
        if ((triggerAction == null ? 0 : triggerAction.Invoke(triggerName, false)) == 0)
        {
            base.OnMDown();
            if (isOpen)
            {
                Close();
            }
            else
            {
                Open();
            }
        }
    }
    /// 
    /// 门打开状态
    /// 
    public void OpenState()
    {
        SiteManager.instance.measuringCabinet.cabinetDoor.isOpen = true;
        SiteManager.instance.measuringCabinet.cabinetDoor.transform.localEulerAngles = new Vector3(0, 0, 180);
        SiteManager.instance.measuringCabinet.cabinetDoor.transform.Find("计量柜锁2/计量柜锁3").localEulerAngles = new Vector3(-45f, 0, 0);
    }
    /// 
    /// 门关闭状态
    /// 
    public void CloseState()
    {
        isOpen = false;
        transform.localEulerAngles = Vector3.zero;
        transform.Find("计量柜锁2/计量柜锁3").localEulerAngles = Vector3.zero;
    }
}