68 lines
2.0 KiB
Lua
68 lines
2.0 KiB
Lua
---@class WBP_GuidePanel_C:UUserWidget
|
|
---@field Overlay_GuideRoot UOverlay
|
|
--Edit Below--
|
|
local WBP_GuidePanel = {
|
|
TriggeredGuide = {}
|
|
};
|
|
|
|
function WBP_GuidePanel:Construct()
|
|
WBP_GuidePanel.SuperClass.Construct(self)
|
|
|
|
self.TipsPanel = {}
|
|
self.TipWidgetClasses = {
|
|
[EGuideWidgetType.Square] = UE.LoadClass(UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Guide/WBP_GuideTips_1.WBP_GuideTips_1_C')),
|
|
[EGuideWidgetType.Round] = UE.LoadClass(UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Guide/WBP_GuideTips_2.WBP_GuideTips_2_C')),
|
|
}
|
|
end
|
|
|
|
function WBP_GuidePanel:Destruct()
|
|
WBP_GuidePanel.SuperClass.Destruct(self)
|
|
end
|
|
|
|
function WBP_GuidePanel:RemoveAllGuide()
|
|
for ID, GuideTip in pairs(self.TriggeredGuide) do
|
|
if GuideTip and UE.IsValid(GuideTip) then
|
|
GuideTip:RemoveFromParent()
|
|
self.TriggeredGuide[ID] = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
function WBP_GuidePanel:InitFromParam(GuideData)
|
|
self:SetupGuideWidget(GuideData)
|
|
end
|
|
|
|
function WBP_GuidePanel:SetupGuideWidget(InGuideData)
|
|
local GuideID = InGuideData.ID
|
|
if GuideID == nil or self.TriggeredGuide[GuideID] ~= nil then
|
|
return
|
|
end
|
|
|
|
local TipClass = self.TipWidgetClasses[InGuideData.GuideType]
|
|
if TipClass == nil or UE.IsValid(TipClass) == false then
|
|
return
|
|
end
|
|
|
|
local WidgetData = {
|
|
UIConfig = {UIType = InGuideData.LinkedUIType, Component = InGuideData.LinkedComponent},
|
|
TextConfig = {TextType = InGuideData.GuideTextType, Text = InGuideData.GuideText}
|
|
}
|
|
|
|
local TipWidget = UserWidget.NewWidgetObjectBP(self, TipClass)
|
|
self.Overlay_GuideRoot:AddChild(TipWidget)
|
|
|
|
TipWidget:SetGuideActionInfo(WidgetData)
|
|
self.TriggeredGuide[GuideID] = TipWidget
|
|
end
|
|
|
|
function WBP_GuidePanel:RemoveGuideWidget(InID)
|
|
local TipWidget = self.TriggeredGuide[InID]
|
|
if TipWidget == nil or UE.IsValid(TipWidget) == false then
|
|
return
|
|
end
|
|
|
|
TipWidget:RemoveFromParent()
|
|
self.TriggeredGuide[InID] = nil
|
|
end
|
|
|
|
return WBP_GuidePanel; |