88 lines
2.5 KiB
Lua
88 lines
2.5 KiB
Lua
---@class WBP_WeaponFittingList_C:UUserWidget
|
|
---@field REINST_WBP_WeaponFittingItem_C_0 UWBP_WeaponFittingItem_C
|
|
---@field REINST_WBP_WeaponFittingItem_C_1 UWBP_WeaponFittingItem_C
|
|
---@field REINST_WBP_WeaponFittingItem_C_2 UWBP_WeaponFittingItem_C
|
|
---@field REINST_WBP_WeaponFittingItem_C_3 UWBP_WeaponFittingItem_C
|
|
---@field VerticalBox_WidgetList UDynaVerticalBox
|
|
---@field WBP_WeaponFittingItem UWBP_WeaponFittingItem_C
|
|
---@field WBP_WeaponFittingItem_0 UWBP_WeaponFittingItem_C
|
|
---@field WBP_WeaponFittingItem_1 UWBP_WeaponFittingItem_C
|
|
---@field WBP_WeaponFittingItem_2 UWBP_WeaponFittingItem_C
|
|
--Edit Below--
|
|
local WBP_WeaponFittingList = { bInitDoOnce = false; };
|
|
|
|
-- 这里传入的是一个具体的列表{{id, count}, {id, count}, ...}
|
|
function WBP_WeaponFittingList: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_WeaponFittingList:SetFittingListItemData(InNum, InData)
|
|
local Widget = self:GetItemByIndex(InNum)
|
|
Widget:SetFittingItemData(InData)
|
|
end
|
|
|
|
function WBP_WeaponFittingList:CloseItemWidget(InNum)
|
|
local Widget = self:GetItemByIndex(InNum)
|
|
Widget:CloseWidget()
|
|
end
|
|
|
|
function WBP_WeaponFittingList:GetItemByIndex(InIndex)
|
|
return self.VerticalBox_WidgetList:GetChildAt(InIndex - 1)
|
|
end
|
|
|
|
function WBP_WeaponFittingList:Clear()
|
|
for i = 1, self.VerticalBox_WidgetList:GetChildrenCount() do
|
|
self:CloseItemWidget(i)
|
|
end
|
|
end
|
|
|
|
function WBP_WeaponFittingList:Tick(MyGeometry, InDeltaTime)
|
|
print(string.format("[WBP_WeaponFittingList:Tick] 列表组件执行 Tick"))
|
|
end
|
|
|
|
-- function WBP_WeaponFittingList:Destruct()
|
|
|
|
-- end
|
|
|
|
function WBP_WeaponFittingList:GetListItems()
|
|
local ret = {}
|
|
for i = 1, 4 do
|
|
table.insert(ret, self.VerticalBox_WidgetList:GetChildAt(i - 1))
|
|
end
|
|
return ret
|
|
end
|
|
|
|
-- {{ItemID, ItemCount}, {ItemID, ItemCount}}
|
|
function WBP_WeaponFittingList:SetItemListData(InData)
|
|
-- 将所有的都设置为空
|
|
self:Clear()
|
|
if InData == nil or #InData == 0 then
|
|
return
|
|
else
|
|
for i = 1, self.VerticalBox_WidgetList:GetChildrenCount() do
|
|
if i <= #InData then
|
|
self.VerticalBox_WidgetList:GetChildAt(i - 1):SetFittingItemData(InData[i])
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
--
|
|
function WBP_WeaponFittingList: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_WeaponFittingList; |