UGCProjects/GZJ/Script/UI/ChildWidgets/WBP_FittingList.lua
2025-01-08 22:46:12 +08:00

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;