81 lines
2.1 KiB
Lua
81 lines
2.1 KiB
Lua
---@class WB_WeaponItem_C:UUserWidget
|
|
---@field HorizontalBox_Part UHorizontalBox
|
|
---@field Image_Select UImage
|
|
---@field Image_WeaponIcon UImage
|
|
---@field NewButton_Item UNewButton
|
|
---@field TextBlock_WeaponName UTextBlock
|
|
--Edit Below--
|
|
---@type WB_WeaponItem_C
|
|
local WB_WeaponItem = { bInitDoOnce = false }
|
|
|
|
function WB_WeaponItem:Construct()
|
|
self:LuaInit();
|
|
end
|
|
|
|
function WB_WeaponItem:LuaInit()
|
|
if self.bInitDoOnce then return ; end
|
|
self.bInitDoOnce = true;
|
|
|
|
UITool.EnableButtonScroll(self.NewButton_Item);
|
|
UITool.BindButtonClicked(self.NewButton_Item, self.OnClickItem, self)
|
|
end
|
|
|
|
function WB_WeaponItem:OnClickItem()
|
|
if self.Func and self.OwnerWid then
|
|
self.Func(self.OwnerWid, self.ItemID, self);
|
|
end
|
|
end
|
|
|
|
function WB_WeaponItem:GetItemID()
|
|
return self.ItemID;
|
|
end
|
|
|
|
function WB_WeaponItem:Init(Owner, Func)
|
|
self.OwnerWid = Owner;
|
|
self.Func = Func;
|
|
self:LuaInit();
|
|
end
|
|
|
|
WB_WeaponItem.ItemID = nil;
|
|
WB_WeaponItem.OwnerWid = nil;
|
|
WB_WeaponItem.Func = nil;
|
|
|
|
function WB_WeaponItem:SetItemID(ItemID)
|
|
self.ItemID = ItemID;
|
|
local Info = UGCItemSystem.GetItemData(ItemID)
|
|
if Info then
|
|
self.TextBlock_WeaponName:SetText(Info.ItemName);
|
|
UE.AsyncLoadObject_Cached(Info.ItemBigIcon_n, function(TargetObject)
|
|
self.Image_WeaponIcon:SetBrushFromTexture(TargetObject);
|
|
end);
|
|
end
|
|
-- 设置子类
|
|
UITool.HideAllChildren(self.HorizontalBox_Part);
|
|
if table.isEmpty(WeaponSuits[InItemId]) then return ; end
|
|
local Best = WeaponSuits[InItemId][EWeaponPartType.Best];
|
|
if table.isEmpty(Best) then return ; end
|
|
UITool.AdaptChildren(self.HorizontalBox_Part, table.getCount(Best[1]));
|
|
for i = 1, table.getCount(Best[1]) do
|
|
local Item = self.HorizontalBox_Part:GetChildAt(i - 1)
|
|
Item:SetItemId(Best[1][i]);
|
|
Item:SetVisibility(ESlateVisibility.HitTestInvisible);
|
|
end
|
|
end
|
|
|
|
function WB_WeaponItem:SetSelect(IsSelect)
|
|
if IsSelect then
|
|
self.Image_Select:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
|
else
|
|
self.Image_Select:SetVisibility(ESlateVisibility.Collapsed);
|
|
end
|
|
end
|
|
|
|
-- function WB_WeaponItem:Tick(MyGeometry, InDeltaTime)
|
|
|
|
-- end
|
|
|
|
-- function WB_WeaponItem:Destruct()
|
|
|
|
-- end
|
|
|
|
return WB_WeaponItem |