96 lines
2.6 KiB
C#
96 lines
2.6 KiB
C#
using EnhancedUI.EnhancedScroller;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
|
|
public class TraveMapScrollViewController : EnhancedScroller, IEnhancedScrollerDelegate
|
|
{
|
|
TravelMapCtrl m_ctrl;
|
|
EnhancedScroller m_Scroller;
|
|
public TraveMapItem mapItemLeft;
|
|
public TraveMapItem mapItemRight;
|
|
List<TraveMapItemData> scrollerDataList = new List<TraveMapItemData>();
|
|
int lastLeft = 0;
|
|
|
|
GameObject m_tips_noopen;
|
|
public void Init(GameObject tips_noopen, EnhancedScroller scroller, TravelMapCtrl ctrl)
|
|
{
|
|
m_tips_noopen = tips_noopen;
|
|
m_Scroller = scroller;
|
|
m_ctrl = ctrl;
|
|
scrollerDataList = m_ctrl.traveMapDataManager.mapItemList;
|
|
//InitScrollerListData();
|
|
lastLeft = scrollerDataList.Count % 2;
|
|
m_Scroller.Delegate = this;
|
|
m_Scroller.ReloadData();
|
|
}
|
|
public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
|
|
{
|
|
TraveMapItem cellView;
|
|
if (dataIndex % 2 == lastLeft)
|
|
{
|
|
cellView = scroller.GetCellView(mapItemLeft) as TraveMapItem;
|
|
}
|
|
else
|
|
{
|
|
cellView = scroller.GetCellView(mapItemRight) as TraveMapItem;
|
|
}
|
|
TraveMapItemData data = scrollerDataList[dataIndex];
|
|
if (cellView.data != null && cellView.data.showTips)
|
|
{
|
|
//隐藏提示
|
|
m_tips_noopen.SetActive(false);
|
|
}
|
|
if (data.showTips)
|
|
{
|
|
//显示提示
|
|
m_tips_noopen.SetActive(true);
|
|
}
|
|
|
|
cellView.SetData(data);
|
|
cellView.onClickAction = OnClickMapItem;
|
|
//cellView.gameObject.name = data.DataType + "-" + GetTypeDataIndex(data.DataType, dataIndex);
|
|
return cellView;
|
|
}
|
|
|
|
public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
|
|
{
|
|
return 541;
|
|
}
|
|
|
|
public int GetNumberOfCells(EnhancedScroller scroller)
|
|
{
|
|
return scrollerDataList.Count;
|
|
}
|
|
|
|
public void OnClickMapItem(TraveMapItemData data)
|
|
{
|
|
if (data.type == TraveMapType.current)
|
|
{
|
|
m_ctrl.InBuildAct();
|
|
}
|
|
else if (data.type == TraveMapType.unlocked)
|
|
{
|
|
m_ctrl.InVisit(data.index);
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
|
|
public TraveMapItem GetCurrentItem()
|
|
{
|
|
if (Container == null) return null;
|
|
TraveMapItem[] items = Container.GetComponentsInChildren<TraveMapItem>();
|
|
if (items == null || items.Length < 1) return null;
|
|
|
|
foreach (var item in items)
|
|
{
|
|
if (item.data.type == TraveMapType.current) return item;
|
|
}
|
|
return null;
|
|
}
|
|
}
|