using EnhancedUI.EnhancedScroller; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class SortMakeDrugTable : MonoBehaviour { [SerializeField] List m_SortElements; [SerializeField] ScrollerController m_Controller; [SerializeField] ClickScreenOtherSpace m_ClickOtherSpace; public event Action onSelectSortEvent; public event Action onSortCloseEvent; BlastFurnaceModel blastModel { get { return ModelCenter.Instance.GetModel(); } } private void Awake() { m_Controller.OnRefreshCell += OnRefreshCell; } private void OnEnable() { m_Controller.Refresh(); if (m_SortElements != null) { for (int i = 0; i < m_SortElements.Count; i++) { m_Controller.AddCell(ScrollerDataType.Header, i); } } m_Controller.Restart(); if (m_ClickOtherSpace != null) { m_ClickOtherSpace.RemoveAllListeners(); m_ClickOtherSpace.AddListener(() => { if (onSortCloseEvent != null) { onSortCloseEvent(); } }); } } private void OnSortSelect(CellView _cell) { var _sortCell = _cell as MakeDrugSortCell; var _index = _cell.index; var type = m_SortElements[_index].type; if(!_sortCell.SelectImg.gameObject.activeInHierarchy) { if(type != 0) { blastModel.SetSortDruglist(type, true,m_SortElements.Count); } else { for (int i = 0; i < m_SortElements.Count; i++) { blastModel.SetSortDruglist(m_SortElements[i].type, true,m_SortElements.Count); } } } else { if (type != 0) { blastModel.SetSortDruglist(type, false,m_SortElements.Count); } else { for (int i = 0; i < m_SortElements.Count; i++) { blastModel.SetSortDruglist(m_SortElements[i].type,false,m_SortElements.Count); } } } if (onSelectSortEvent != null) { onSelectSortEvent(); } if (onSortCloseEvent != null) { onSortCloseEvent(); } m_Controller.m_Scorller.RefreshActiveCellViews(); } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var _sortCell = cell as MakeDrugSortCell; var stringKey = m_SortElements[cell.index].textKey; var lv = m_SortElements[cell.index].type; if (lv !=0) { string lvStr = Language.Get(StringUtility.Contact("Num_CHS_", lv)); _sortCell.sortTypeTxt.text = Language.Get(stringKey, lvStr); } else { _sortCell.sortTypeTxt.text = Language.Get(stringKey); } if(blastModel.sortDruglist.Contains(lv)) { _sortCell.SelectImg.gameObject.SetActive(true); } else { _sortCell.SelectImg.gameObject.SetActive(false); } _sortCell.SortBtn.RemoveAllListeners(); _sortCell.SortBtn.AddListener(()=> { OnSortSelect(cell); }); } public void SetDefault() { if (m_SortElements != null && m_SortElements.Count > 0) { for(int i = 0; i < m_SortElements.Count; i++) { blastModel.SetSortDruglist(m_SortElements[i].type,true,m_SortElements.Count); } } } } }