---@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;