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<SortElement> 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<BlastFurnaceModel>(); } }
|
|
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);
|
}
|
}
|
}
|
}
|
}
|
|