PGRData/Script/matrix/xui/xuidormbagrecycle/XUiDormBagRecycle.lua

53 lines
No EOL
1.7 KiB
Lua

local XUiDormBagRecycle = XLuaUiManager.Register(XLuaUi, "UiDormBagRecycle")
local XUiGridFurniture = require("XUi/XUiDormBag/XUiGridFurniture")
function XUiDormBagRecycle:OnAwake()
self:AddListener()
end
function XUiDormBagRecycle:OnStart(recycleFurnitures, rewardItems, openFinishCallBack, closeFinishCallBack)
self.RecycleItems = {}
self.RewardItems = {}
self.OpenFinishCallBack = openFinishCallBack
self.CloseFinishCallBack = closeFinishCallBack
self:Refresh(recycleFurnitures, rewardItems)
end
function XUiDormBagRecycle:Refresh(recycleFurnitures, rewardItems)
local rewardGridDatas = {}
local sortedRewardItems = XRewardManager.MergeAndSortRewardGoodsList(rewardItems)
for index, data in pairs(sortedRewardItems) do
table.insert(rewardGridDatas, { Data = data, GridIndex = index })
end
local onCreate = function(item, data)
item:Refresh(data, false, true, true)
end
local onFurnitureCreate = function(item, id)
item:Refresh(id)
end
XUiHelper.CreateTemplates(self, self.RecycleItems, recycleFurnitures, XUiGridFurniture.New, self.GridFurnitureRecycle.gameObject, self.PanelRecycle, onFurnitureCreate)
XUiHelper.CreateTemplates(self, self.RewardItems, rewardGridDatas, XUiBagItem.New, self.GridFurnitureRecycle.gameObject, self.PanelReward, onCreate)
self.GridFurnitureRecycle.gameObject:SetActive(false)
if self.OpenFinishCallBack then
self.OpenFinishCallBack()
end
end
function XUiDormBagRecycle:AddListener()
self:RegisterClickEvent(self.BtnClose, self.OnBtnCloseClick)
end
function XUiDormBagRecycle:OnBtnCloseClick()
self:Close()
if self.CloseFinishCallBack then
self.CloseFinishCallBack()
end
end
return XUiDormBagRecycle