---@class WB_WeaponItem_C:UUserWidget ---@field CanvasPanel_WeaponInfo UCanvasPanel ---@field HorizontalBox_Part UHorizontalBox ---@field Image_WeaponIcon UImage ---@field TextBlock_WeaponName UTextBlock --Edit Below-- local WB_WeaponItem = { bInitDoOnce = false; }; --[==[ Construct function WB_WeaponItem:Construct() end -- Construct ]==] -- function WB_WeaponItem:Tick(MyGeometry, InDeltaTime) -- end -- function WB_WeaponItem:Destruct() -- end function WB_WeaponItem:LuaInit() if self.bInitDoOnce then return end self.bInitDoOnce = true UGCEventSystem.AddListener(ArchiveDataConfig.GetParamNotifyEvent(ArchiveDataConfig.EArchiveType.CustomWeaponParts), self.SetWeaponID, self) end function WB_WeaponItem:SetWeaponID(WeaponID) self:LuaInit() if WeaponID ~= nil and self.WeaponID ~= WeaponID then self.WeaponID = WeaponID end local Parts = MyWeaponSystem.GetWeaponBastParts(self.WeaponID) local CustomWeaponParts = ArchiveDataConfig.GetPlayerArchiveDataFromType(UGCSystemLibrary.GetLocalPlayerKey(), ArchiveDataConfig.EArchiveType.CustomWeaponParts) if CustomWeaponParts and CustomWeaponParts[self.WeaponID] then Parts = CustomWeaponParts[self.WeaponID] UGCLogSystem.LogTree("[WB_WeaponItem_SetWeaponID] Parts:", Parts) end if Parts then for i = 1, self.HorizontalBox_Part:GetChildrenCount() do local Item = self.HorizontalBox_Part:GetChildAt(i - 1) if Parts[i] then Item:SetVisibility(ESlateVisibility.SelfHitTestInvisible) Item:SetItemID(Parts[i]) else Item:SetVisibility(ESlateVisibility.Collapsed) end end end MyWeaponSystem.AsyncLoadItemBigIconToBrush(self.WeaponID, self.Image_WeaponIcon) self.TextBlock_WeaponName:SetText(MyWeaponSystem.GetItemName(self.WeaponID)) end function WB_WeaponItem:SetVisWeaponInfo(IsVis) if IsVis then self.CanvasPanel_WeaponInfo:SetVisibility(ESlateVisibility.HitTestInvisible) else self.CanvasPanel_WeaponInfo:SetVisibility(ESlateVisibility.Hidden) end end return WB_WeaponItem;