using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class UI_CheckMyselfItem : BaseItem
{
    public ItemInfo itemInfo;
    public TextMeshProUGUI tips;
    public bool isOn = false;

    public void Init(ItemInfo _itemInfo)
    {
        itemInfo = _itemInfo;
        if (PacksackBagMgr.Instance.wearDic.ContainsKey(itemInfo.toolName))
        {
            isOn = true;
            tips.text = isOn ? "ÒÑ×°Åä" : "";
        }
        GetControl<Image>("iconBtn").sprite = Resources.Load<Sprite>(Const.LoadToolAndMaterialPath + _itemInfo.toolName);
        GameManager.EventMgr.AddEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
    }


    private void SwitchSubProcessStepTriggerID(string arg0)
    {
        if (itemInfo.toolName == arg0)
        {
            GameManager.UIMgr.imageTips.ShowTips(GetComponent<RectTransform>());
        }
    }
    protected override void OnClick(string btnName)
    {
        base.OnClick(btnName);
        switch (btnName)
        {
            case "iconBtn":
                if (GameManager.ProcessMgr.IsRightSubProcessStepsTriggerID(itemInfo.toolName, true) == 0)
                {
                    isOn = !isOn;
                    tips.text = isOn ? "ÒÑ×°Åä" : "";
                    PacksackBagMgr.Instance.WearItemState(itemInfo, isOn);
                    TooRoomMannger.Instance.Wear(itemInfo.toolName, isOn);
                }
                if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
                    GameManager.EventMgr.EventTrigger(Enum_EventType.WearState);
                break;
            case "UI_CheckMyselfItem":
                Debug.Log("UI_CheckMyselfItem");
                //TODO something
                break;
        }
    }

    private void OnDestroy()
    {
        GameManager.EventMgr.RemoveEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
    }

    private void OnDisable()
    {
        GameManager.EventMgr.RemoveEventListener<string>(Enum_EventType.SwitchSubProcessStepTriggerID, SwitchSubProcessStepTriggerID);
    }
}