| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | using System;using System.Collections.Generic;using Fort23.Core;using GameLogic.Bag;namespace Fort23.Mono{    [UIBinding(prefab = "DivineSenceItemPanel")]    public partial class DivineSenceItemPanel : UIPanel    {        List<DivineSenceItemWidget> _divineSenceItemWidgets = new List<DivineSenceItemWidget>();        private Action<int> callBack;        private Action cancelCallBack;        private void Init()        {        }        protected override void AddEvent()        {        }        protected override void DelEvent()        {        }        public override void AddButtonEvent()        {            Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });                    }        public async override CTask<bool> AsyncInit(object[] uiData)        {            ItemInfo selectItemInit = uiData[0] as ItemInfo;            callBack = uiData[1] as Action<int>;            cancelCallBack = uiData[2] as Action;            List<ItemInfo> itemInfos = new List<ItemInfo>();            foreach (var keyValuePair in PlayerManager.Instance.BagController.allBagDic)            {                if (keyValuePair.Value.config.associateID == 6 || keyValuePair.Value.config.associateID == 7)                {                    itemInfos.Add(keyValuePair.Value);                }            }            foreach (var itemInfo in itemInfos)            {                DivineSenceItemWidget divineSenceItemWidget = await UIManager.Instance.CreateGComponent<DivineSenceItemWidget>(null, Content);                divineSenceItemWidget.CustomInit(itemInfo,CancelClick, selectItemInit);                divineSenceItemWidget.OnClick = OnClick;                _divineSenceItemWidgets.Add(divineSenceItemWidget);            }            return await base.AsyncInit(uiData);        }        private void OnClick(ItemWidgetBasic obj)        {            DivineSenceItemWidget divineSenceItemWidget = obj as DivineSenceItemWidget;            callBack?.Invoke(divineSenceItemWidget.ItemInfo.itemID);            UIManager.Instance.HideUIUIPanel(this);        }        private void CancelClick()        {            cancelCallBack?.Invoke();            UIManager.Instance.HideUIUIPanel(this);        }        public static async CTask OpenPanel(ItemInfo selectItemInit, Action<int> itemId,Action cancelCallBack)        {            await UIManager.Instance.LoadAndOpenPanel<DivineSenceItemPanel>(null, UILayer.Top, uiData: new object[] { selectItemInit, itemId,cancelCallBack });        }        public override void Close()        {            foreach (var divineSenceItemWidget in _divineSenceItemWidgets)            {                UIManager.Instance.DormancyGComponent(divineSenceItemWidget);            }            _divineSenceItemWidgets.Clear();            base.Close();        }    }}
 |