2025-01-04 23:00:19 +08:00

65 lines
2.1 KiB
Lua

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