PGRData/Script/matrix/xui/xuicharacterdetail/XUiPanelEquipInfo.lua

109 lines
No EOL
3.5 KiB
Lua

local XUiPanelEquipInfo = XLuaUiManager.Register(XLuaUi, "UiPanelEquipInfo")
-- auto
-- Automatic generation of code, forbid to edit
function XUiPanelEquipInfo:InitAutoScript()
self:AutoInitUi()
XTool.InitUiObject(self)
self:AutoAddListener()
end
function XUiPanelEquipInfo:AutoInitUi()
self.PanelTaskList = self.Transform:Find("PanelTaskList")
self.PanelDetailEquipItem = self.Transform:Find("PanelTaskList/Viewport/PanelDetailEquipItem")
end
function XUiPanelEquipInfo:AutoAddListener()
end
-- auto
function XUiPanelEquipInfo:OnAwake()
self:InitAutoScript()
end
function XUiPanelEquipInfo:OnStart(CharacterId, rootUi)
self.RootUi = rootUi
self.CharacterId = CharacterId
self.DynamicTable = XDynamicTableNormal.New(self.PanelTaskList)
self.DynamicTable:SetProxy(XUiPanelDetailEquipItem)
self.DynamicTable:SetDelegate(self)
self.PanelDetailEquipItem.gameObject:SetActive(false)
self:InitTabBtnGroup()
if not XDataCenter.VoteManager.IsInit() then
XDataCenter.VoteManager.GetVoteGroupListRequest()
end
end
function XUiPanelEquipInfo:OnEnable()
self:SetupDynamicTable()
XEventManager.AddEventListener(XEventId.EVENT_VOTE_REFRESH, self.SetupDynamicTable, self)
self.RootUi:PlayAnimation("EquipInfoEnable")
end
function XUiPanelEquipInfo:OnDisable()
XEventManager.RemoveEventListener(XEventId.EVENT_VOTE_REFRESH, self.SetupDynamicTable, self)
self.DynamicTable:Clear()
end
function XUiPanelEquipInfo:InitTabBtnGroup()
local tabIdList = XCharacterConfigs.GetRecommendTabList(self.CharacterId, XCharacterConfigs.RecommendType.Equip)
if not tabIdList then
return
end
local tabGroup = {}
for i = 1, #tabIdList do
local uiButton
if i == 1 then
uiButton = self.BtnTabMatch
else
local itemGo = CS.UnityEngine.Object.Instantiate(self.BtnTabMatch.gameObject)
itemGo.transform:SetParent(self.PanelTagsLayoutRT, false)
uiButton = itemGo.transform:GetComponent("XUiButton")
end
local config = XCharacterConfigs.GetRecommendTabTemplate(self.CharacterId, tabIdList[i], XCharacterConfigs.RecommendType.Equip)
uiButton:SetName(config.TabName)
table.insert(tabGroup, uiButton)
end
self.PanelTagsLayout:Init(tabGroup, function(tabIndex) self:OnClickTabCallBack(tabIndex) end)
self.PanelTagsLayout:SelectIndex(1)
end
function XUiPanelEquipInfo:OnClickTabCallBack(tabIndex)
if self.CurTabId and self.CurTabId == tabIndex then
return
end
self.CurTabId = tabIndex
self.RootUi:PlayAnimation("TaskListQiehuan")
self:SetupDynamicTable()
end
function XUiPanelEquipInfo:SetupDynamicTable()
if not XDataCenter.VoteManager.IsInit() then
return
end
local recommendEquipGroupId = XCharacterConfigs.GetRecommendGroupId(self.CharacterId, self.CurTabId, XCharacterConfigs.RecommendType.Equip)
local voteIds = XDataCenter.VoteManager.GetVoteIdListByGroupId(recommendEquipGroupId)
self.PageDatas = XCharacterConfigs.GetEquipRecommendListByIds(voteIds)
if not self.PageDatas then
self.PageDatas = {}
end
self.DynamicTable:SetDataSource(self.PageDatas)
self.DynamicTable:ReloadDataASync()
end
function XUiPanelEquipInfo:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:Init(self.UiProxy)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
grid:UpdateView(self.PageDatas[index], index)
end
end
return XUiPanelEquipInfo