PGRData/Script/matrix/xui/xuifubenmainlinebanner/XUiPanelChapterDz.lua

100 lines
3.4 KiB
Lua
Raw Normal View History

local XUiPanelChapterDz = XClass(nil, "XUiPanelChapterDz")
local XUiGridChapterDz = require("XUi/XUiFubenMainLineBanner/XUiGridChapterDz")
function XUiPanelChapterDz:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.RootUi = rootUi
self:InitAutoScript()
self.ChapterDynamicTable = XDynamicTableNormal.New(self.PanelChapterDz)
self.ChapterDynamicTable:SetProxy(XUiGridChapterDz)
self.ChapterDynamicTable:SetDelegate(self)
end
-- auto
-- Automatic generation of code, forbid to edit
function XUiPanelChapterDz:InitAutoScript()
self:AutoInitUi()
self:AutoAddListener()
end
function XUiPanelChapterDz:AutoInitUi()
self.PanelChapterDz = self.Transform:Find("PanelChapterDz")
self.PanelChapterContent = self.Transform:Find("PanelChapterDz/Viewport/PanelChapterContent")
self.GridChapterDz = self.Transform:Find("PanelChapterDz/Viewport/GridChapterDz")
end
function XUiPanelChapterDz:RegisterClickEvent(uiNode, func)
if func == nil then
XLog.Error("XUiPanelChapterDz:RegisterClickEvent函数参数错误参数func不能为空")
return
end
if type(func) ~= "function" then
XLog.Error("XUiPanelChapterDz:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
end
local listener = function(...)
func(self, ...)
end
CsXUiHelper.RegisterClickEvent(uiNode, listener)
end
function XUiPanelChapterDz:AutoAddListener()
end
-- auto
--动态列表事件
function XUiPanelChapterDz:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:InitRoot(self.RootUi)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
if self.Covers[index] then
grid:RefreshDatas(self.Covers[index])
end
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
self.CurrentCover = self.Covers[index]
self:OnChapterCoverClick(grid, self.CurrentCover)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_RELOAD_COMPLETED then
XEventManager.DispatchEvent(XEventId.EVENT_GUIDE_STEP_OPEN_EVENT)
end
end
-- 章节点击事件
function XUiPanelChapterDz:OnChapterCoverClick(grid, coverData)
-- 跳转到新界面
XLuaUiManager.Open("UiPrequel", coverData)
end
-- 设置数据
function XUiPanelChapterDz:SetupCoverDatas(defaultCoverId, defaultChapterId)
self.Covers = XDataCenter.PrequelManager.GetListCovers()
self.ChapterDynamicTable:SetDataSource(self.Covers)
self.ChapterDynamicTable:ReloadDataASync()
if defaultCoverId then
self:OnOpenCoverById(defaultCoverId, defaultChapterId)
end
end
function XUiPanelChapterDz:OnOpenCoverById(coverId, defaultChapterId)
if self.Covers then
local index = 0
for k, v in pairs(self.Covers) do
if v.CoverId == coverId then
index = k
break
end
end
if self.Covers[index] then
if self.Covers[index].IsAllChapterLock and (not self.Covers[index].IsActivity) then
XUiManager.TipMsg(XDataCenter.PrequelManager.GetChapterUnlockDescription(self.Covers[index].ShowChapter))
return
end
self.CurrentCover = self.Covers[index]
XLuaUiManager.Open("UiPrequel", self.CurrentCover, nil, defaultChapterId)
end
end
end
return XUiPanelChapterDz