using Cal.DataTable; using FairyGUI; using System; using System.Collections.Generic; using UnityEngine; namespace ET { public class StarSoulBagUIAwakeSyatem: AwakeSystem { public override void Awake(StarSoulBagUI self) { self.Awake(); } } public class StarSoulBagUIDestroySyatem: DestroySystem { public override void Destroy(StarSoulBagUI self) { self.Destroy(); } } public class StarSoulBagUI: Entity { public FUI_StarSoulBagUI ui; private Scene zoneScene; private StarSoulBag bag; private bool isInit; private EventCallback0 rollOverAction; private ListComponent idList; public void Awake() { zoneScene = this.ZoneScene(); ui = GetParent(); if (!this.isInit) { this.ui.m_slotList.SetVirtual(); // this.rollOverAction = this.OnRollOver; this.ui.m_slotList.itemRenderer = OnItemRender; } AwakeAsync().Coroutine(); } private async ETVoid AwakeAsync() { bag = this.zoneScene.GetComponent(); ShowSlots(); await ETTask.CompletedTask; } private void ShowSlots() { idList = ListComponent.Create(); idList.List.AddRange(bag.itemDic.Keys); this.ui.m_slotList.numItems = bag.ItemCount; this.ui.m_slotList.RefreshVirtualList(); } private void OnItemRender(int index, GObject item) { var btn = item.asButton; btn.icon = UIPackage.GetItemURL(FUIPackage.Bag,"120651"); btn.onRollOver.Set(()=>OnRollOver(btn,index)); } private void OnRollOver(GButton btn,int index) { long id = idList.List[index]; TabHelper.SetTab(btn,()=>TabHelper.OpenStarSoulUI(this.bag, id)); } public void ReFresh() { idList.Dispose(); AwakeAsync().Coroutine(); } public void Destroy() { idList.Dispose(); } } }