using System; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class XBGridCell : MonoBehaviour { [SerializeField] ItemCell itemCell; PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel(); } } HappyXBModel XBModel { get { return ModelCenter.Instance.GetModel(); } } int index = 0; public void OnEnable() { playerPack.RefreshItemCountAct += RefreshItemCount; } public void OnDisable() { playerPack.RefreshItemCountAct -= RefreshItemCount; } public void SetModel(string guid,int index) { this.index = index; ItemModel itemModel = playerPack.GetItemModelByGUID(guid); if(itemModel != null) { itemCell.gameObject.SetActive(true); itemCell.Init(itemModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { ClickItemCell(itemModel); }); } else { itemCell.gameObject.SetActive(false); } } private void ClickItemCell(ItemModel itemModel) { if(playerPack.GetReaminGridCount(PackType.rptItem) > 0) { XBModel.SendPutOutXBItem(PackType.rptTreasure, PackType.rptItem, itemModel.itemInfo.ItemPlace, 0); } else { SysNotifyMgr.Instance.ShowTip("BagFull"); } } private void RefreshItemCount(PackType type, int index, int id) { if (type != PackType.rptTreasure || this.index != index) return; ItemModel itemModel = playerPack.GetItemModelByIndex(type,index); if(itemModel != null) { SetModel(itemModel.itemInfo.ItemGUID,index); } else { SetModel("",index); } } } }