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

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