using System; using UnityEngine; using UnityEngine.UI; using EnhancedUI.EnhancedScroller; using System.Collections.Generic; namespace Snxxz.UI { [XLua.Hotfix] public class JadeDynastyDecomposeLineBeh : ScrollerUI { [SerializeField] List itemBehs = new List(); JadeDynastyDecomposeModel decomposeModel { get { return ModelCenter.Instance.GetModel(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel(); } } public override void Refresh(CellView cell) { var decomposeGuids = decomposeModel.allGuids; int length = itemBehs.Count; for(int i = 0; i < length; i++) { var itemBeh = itemBehs[i]; int index = cell.index*length + i; if(decomposeGuids != null && index < decomposeGuids.Count) { var guid = decomposeGuids[index]; var model = playerPack.GetItemModelByGUID(guid); itemBeh.SetDisplay(model,decomposeModel.selectGuids); } else { itemBeh.SetDisplay(null,null); } } } [Serializable] public class DecomposeItemBeh { [SerializeField] CommonItemBaisc itemBaisc; [SerializeField] GameObject selectObj; JadeDynastyDecomposeModel decomposeModel { get { return ModelCenter.Instance.GetModel(); } } public void SetDisplay(ItemModel itemModel,List selectGuids) { if (itemModel == null || selectGuids == null) { itemBaisc.gameObject.SetActive(false); selectObj.SetActive(false); } else { itemBaisc.gameObject.SetActive(true); selectObj.SetActive(selectGuids.Contains(itemModel.itemInfo.ItemGUID)); itemBaisc.Init(itemModel); itemBaisc.cellBtn.RemoveAllListeners(); itemBaisc.cellBtn.AddListener(()=> { if(selectObj.activeInHierarchy) { this.decomposeModel.RemoveSelectModel(itemModel.itemInfo.ItemGUID); } else { this.decomposeModel.AddSelectModel(itemModel.itemInfo.ItemGUID); } selectObj.SetActive(!selectObj.activeInHierarchy); }); } } } } }