| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | using System.Collections.Generic;using Core.Language;using Excel2Json;using Fort23.Core;using Fort23.UTool;using GameLogic.Bag;using Mono.Utility;namespace Fort23.Mono{    [UIBinding(prefab = "ItemSourcePanel")]    public partial class ItemSourcePanel : UIPanel    {        List<SkipToWidget> skipToWidgets = new List<SkipToWidget>();        private CTask<bool> callBack;        private bool isSkipto = false;        private void Init()        {            isPopUi = true;            isAddStack = false;        }        protected override void AddEvent()        {        }        protected override void DelEvent()        {        }        public override void AddButtonEvent()        {        }        public async override CTask<bool> AsyncInit(object[] uiData)        {            int itemId = (int)uiData[0];            callBack = uiData[1] as CTask<bool>;            ItemConfig itemConfig = ConfigComponent.Instance.Get<ItemConfig>(itemId);            Text_ItemName.text = LanguageManager.Instance.Text(itemConfig.itemName);                        WidgetItem widgetItem =                await UIManager.Instance.CreateGComponentForObject<WidgetItem>(WidgetItemGam, null);            widgetItem.InitWidget(new ItemInfo(itemId),false);                        Text_ItemCount.text = PlayerManager.Instance.BagController.GetItemCount(itemId).ToString();            if (itemConfig.SkiptoID != null)            {                foreach (var skiptoId in itemConfig.SkiptoID)                {                    SkipToWidget skipToWidget = await UIManager.Instance.CreateGComponent<SkipToWidget>(null, Content);                    skipToWidget.CustonInit(skiptoId);                    skipToWidgets.Add(skipToWidget);                    skipToWidget.OnClick = OnClick;                }            }            return await base.AsyncInit(uiData);        }        private async void OnClick(ItemWidgetBasic obj)        {            SkipToWidget skipToWidget = obj as SkipToWidget;            isSkipto = true;            await UIManager.Instance.HideUIUIPanel(this);            SkiptoHelper.Skipto(skipToWidget.SkiptoConfig.ID);        }        public static async CTask<bool> OpenPanel(int itemId)        {            CTask<bool> callBack = CTask<bool>.Create();            await UIManager.Instance.LoadAndOpenPanel<ItemSourcePanel>(null, UILayer.Top,                uiData: new object[] { itemId, callBack }, isShowBG: true);            return await callBack;        }        public async override CTask Close()        {            foreach (var skipToWidget in skipToWidgets)            {                UIManager.Instance.DormancyGComponent(skipToWidget);            }            skipToWidgets.Clear();            callBack?.SetResult(isSkipto);            isSkipto = false;            await base.Close();        }    }}
 |