备份CatanBuilding瘦身独立工程
This commit is contained in:
119
Assets/Scripts/UI/Potion/PotionScrollViewController.cs
Normal file
119
Assets/Scripts/UI/Potion/PotionScrollViewController.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
using asap.core;
|
||||
using EnhancedUI.EnhancedScroller;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace game
|
||||
{
|
||||
public class PotionScrollViewController : EnhancedScroller, IEnhancedScrollerDelegate
|
||||
{
|
||||
private EventPotionPanel m_Panel;
|
||||
private EventPotionDataManager m_DataManager;
|
||||
|
||||
public void Init(EnhancedScroller scroller, EventPotionPanel potionPanel, EventPotionDataManager dataManager)
|
||||
{
|
||||
m_Scroller = scroller;
|
||||
m_Panel = potionPanel;
|
||||
m_DataManager = dataManager;
|
||||
|
||||
InitScrollerListData();
|
||||
|
||||
m_Scroller.Delegate = this;
|
||||
m_Scroller.cellViewVisibilityChanged = CellViewVisibilityChanged;
|
||||
m_Scroller.cellViewWillRecycle = CellViewWillRecycle;
|
||||
m_Scroller.ReloadData();
|
||||
}
|
||||
|
||||
#region 操作相关
|
||||
public void LockScrollView()
|
||||
{
|
||||
if (ScrollRect.vertical)
|
||||
{
|
||||
ScrollRect.vertical = false;
|
||||
}
|
||||
}
|
||||
public void UnlockScrollView()
|
||||
{
|
||||
if (!ScrollRect.vertical)
|
||||
{
|
||||
ScrollRect.vertical = true;
|
||||
}
|
||||
}
|
||||
|
||||
public PotionItem GetOperationPotionItem()
|
||||
{
|
||||
if (Container == null) return null;
|
||||
PotionItem[] items = Container.GetComponentsInChildren<PotionItem>();
|
||||
if (items == null || items.Length < 1) return null;
|
||||
|
||||
foreach (var item in items)
|
||||
{
|
||||
if (item.Data.DataType == EventPotionDataType.Data_ItemAndOperation) return item;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region EnhancedScroller Handlers
|
||||
private EnhancedScroller m_Scroller;
|
||||
public PotionItem potionItem;
|
||||
List<PotionItemData> scrollerDataList = new List<PotionItemData>();
|
||||
|
||||
void InitScrollerListData()
|
||||
{
|
||||
scrollerDataList = m_DataManager.ScrollerDataList;
|
||||
}
|
||||
public int GetTypeDataIndex(EventPotionDataType dataType, int index)
|
||||
{
|
||||
if (dataType == EventPotionDataType.Data_Wall)
|
||||
{
|
||||
return index;
|
||||
}
|
||||
else if (dataType == EventPotionDataType.Data_ItemAndOperation)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int tmp = m_Panel.ScrollViewMinimumQuantity - 1;
|
||||
return index - tmp;
|
||||
}
|
||||
|
||||
public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
|
||||
{
|
||||
PotionItem cellView = scroller.GetCellView(potionItem) as PotionItem;
|
||||
var data = scrollerDataList[dataIndex];
|
||||
cellView.gameObject.name = data.DataType + "-" + GetTypeDataIndex(data.DataType, dataIndex);
|
||||
cellView.SetData(m_Panel, m_DataManager, data);
|
||||
return cellView;
|
||||
}
|
||||
|
||||
public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
|
||||
{
|
||||
return 200f;
|
||||
}
|
||||
|
||||
public int GetNumberOfCells(EnhancedScroller scroller)
|
||||
{
|
||||
return scrollerDataList.Count;
|
||||
}
|
||||
|
||||
private void CellViewVisibilityChanged(EnhancedScrollerCellView cellView)
|
||||
{
|
||||
|
||||
}
|
||||
private void CellViewWillRecycle(EnhancedScrollerCellView cellView)
|
||||
{
|
||||
PotionItem potionItem = cellView as PotionItem;
|
||||
string name = "Recycle-";
|
||||
if (potionItem != null)
|
||||
{
|
||||
if (potionItem.Data != null)
|
||||
{
|
||||
name += potionItem.Data.DataType + "-";
|
||||
}
|
||||
name += potionItem.dataIndex + "-" + potionItem.cellIndex;
|
||||
}
|
||||
cellView.gameObject.name = name;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user