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(itemModel.config.Type == 30 || itemModel.config.Type == 31) { if (XBModel.CheckIsEmptyGrid(PackType.RunePack)) { XBModel.SendPutOutXBItem(PackType.Treasure, PackType.RunePack, itemModel.itemInfo.ItemPlace, 0); } } else { if (XBModel.CheckIsEmptyGrid(PackType.Item)) { XBModel.SendPutOutXBItem(PackType.Treasure, PackType.Item, itemModel.itemInfo.ItemPlace, 0); } } } private void RefreshItemCount(PackType type, int index, int id) { if (type != PackType.Treasure || this.index != index) return; ItemModel itemModel = playerPack.GetItemModelByIndex(type,index); if(itemModel != null) { SetModel(itemModel.itemInfo.ItemGUID,index); } else { SetModel("",index); } } } }