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

public class UI_CheckMyselfPanel : BasePanel
{
    private HashSet<string> validToolNames = new HashSet<string> { "国网安全帽", "绝缘手套", "绝缘靴", "工作服" };
    public RectTransform _content;
    public UI_CheckMyselfItem ui_CheckMySelfItem;


    public override void ShowMe()
    {
        base.ShowMe();
        var currentBagDataForTool = GameManager.PacksackBagMgr.GetItemsByE_TMDType(E_ToolOrDeviceOrMaterials.Tool);

        foreach (var item in currentBagDataForTool.Keys)
        {
            if (validToolNames.Contains(item))
            {
                UI_CheckMyselfItem cItem = Instantiate(ui_CheckMySelfItem, _content);
                cItem.Init(currentBagDataForTool[item][0]);
            }
        }
        if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
        {
            GetControl<Button>("closeBtn").interactable = false;
            GameManager.EventMgr.AddEventListener(Enum_EventType.WearState, OnWearState);
            GameManager.EventMgr.EventTrigger<string>(Enum_EventType.SwitchSubProcessStepTriggerID, GameManager.ProcessMgr.subProcessStepTriggerID);
        }
    }



    public override void HideMe()
    {
        base.HideMe();
        if (GameManager.RunModelMgr.ModeType == E_ModeType.Study)
        {
            GameManager.EventMgr.RemoveEventListener(Enum_EventType.WearState, OnWearState);
        }
    }

    private void OnWearState()
    {
        if (PacksackBagMgr.Instance.IsWeared(validToolNames))
        {
            GameManager.UIMgr.imageTips.HideTips();
            GameManager.UIMgr.HidePanel<UI_CheckMyselfPanel>();
        }
    }

    protected override void OnClick(string btnName)
    {
        switch (btnName)
        {
            case "closeBtn":
                GameManager.UIMgr.HidePanel<UI_CheckMyselfPanel>();
                //GameManager.UIMgr.HidePanel<UI_CheckMyselfPanel>();
                break;
            default:
                break;
        }
    }
}