70 lines
2.2 KiB
Lua
70 lines
2.2 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
|
|
-- 在这里修改 存档中的武器配件存档修改同步后触发 CustomWeaponParts = {[WeaponID] = {PartID, PartID, PartID, ...}, ...}
|
|
-- UGCEventSystem.AddListener(ArchiveDataConfig.GetParamNotifyEvent(ArchiveDataConfig.EArchiveType.CustomWeaponParts), self.SetWeaponID, self)
|
|
UGCEventSystem.AddListener(EventTypes.UpdateWeapons, self.OnUpdateWeapons, self)
|
|
end
|
|
|
|
function WB_WeaponItem:OnUpdateWeapons(Weapon)
|
|
UGCLogSystem.Log("[WB_WeaponItem:OnUpdateWeapons] 更新 WeaponID = %s", tostring(Weapon));
|
|
self:SetWeaponID(self.WeaponID);
|
|
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 PartList = UE.GetLocalArchiveData("Weapons")
|
|
if PartList and PartList[self.WeaponID] then
|
|
Parts = PartList[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; |