76 lines
2.0 KiB
Lua
76 lines
2.0 KiB
Lua
---@class WBP_FittingList_C:UAEUserWidget
|
|
---@field VerticalBox_WidgetList UVerticalBox
|
|
---@field WBP_FittingItem_C_0 UWBP_FittingItem_C
|
|
---@field WBP_FittingItem_C_1 UWBP_FittingItem_C
|
|
---@field WBP_FittingItem_C_2 UWBP_FittingItem_C
|
|
---@field WBP_FittingItem_C_3 UWBP_FittingItem_C
|
|
--Edit Below--
|
|
local WBP_FittingList = { bInitDoOnce = false; };
|
|
|
|
--function WBP_FittingList:Construct()
|
|
-- -- 将所有的都设置为空
|
|
--end
|
|
|
|
-- 这里传入的是一个具体的列表{{id, count}, {id, count}, ...}
|
|
function WBP_FittingList:SetFittingListData(InDataArr)
|
|
for i = 1, 4 do
|
|
-- 通过 Id 进行数据获取
|
|
if i <= #InDataArr then
|
|
self:SetFittingListItemData(i, InDataArr[i])
|
|
else
|
|
self:CloseItemWidget(i)
|
|
end
|
|
end
|
|
end
|
|
|
|
function WBP_FittingList:SetFittingListItemData(InNum, InData)
|
|
local Widget = self:GetItemByIndex(InNum)
|
|
Widget:SetFittingItemData(InData)
|
|
end
|
|
|
|
function WBP_FittingList:CloseItemWidget(InNum)
|
|
local Widget = self:GetItemByIndex(InNum)
|
|
Widget:CloseWidget()
|
|
end
|
|
|
|
function WBP_FittingList:GetItemByIndex(InIndex)
|
|
return self.VerticalBox_WidgetList:GetChildAt(InIndex - 1)
|
|
end
|
|
|
|
function WBP_FittingList:Clear()
|
|
for i = 1, self.VerticalBox_WidgetList:GetChildrenCount() do
|
|
self:CloseItemWidget(i)
|
|
end
|
|
end
|
|
|
|
function WBP_FittingList:Tick(MyGeometry, InDeltaTime)
|
|
--print(string.format("[WBP_FittingList:Tick] 列表组件执行 Tick"))
|
|
--for i = 1, self.VerticalBox_WidgetList:GetChildrenCount() do
|
|
-- self.VerticalBox_WidgetList:GetChildAt(i - 1):Tick(MyGeometry, InDeltaTime)
|
|
--end
|
|
end
|
|
|
|
-- function WBP_FittingList:Destruct()
|
|
|
|
-- end
|
|
|
|
function WBP_FittingList:GetListItems()
|
|
local ret = {}
|
|
for i = 1, 4 do
|
|
table.insert(ret, self.VerticalBox_WidgetList:GetChildAt(i - 1))
|
|
end
|
|
return ret
|
|
end
|
|
|
|
--
|
|
function WBP_FittingList:OnDrop(MyGeometry, PointerEvent, Operation)
|
|
local ItemData = Operation:GetItemData()
|
|
local Type = Operation:GetDropItemType()
|
|
if Type == EItemDropType.CancelGenerate then
|
|
EventSystem:SendEvent(EventType.CloseGenerateItem, ItemData.ItemID)
|
|
else
|
|
return
|
|
end
|
|
end
|
|
|
|
return WBP_FittingList; |