75 lines
2.2 KiB
Lua
75 lines
2.2 KiB
Lua
---@class WBP_OperateButton_C:UUserWidget
|
|
---@field Button_Title UButton
|
|
---@field TextBlock_Title UTextBlock
|
|
---@field WidgetSwitcher_BG UWidgetSwitcher
|
|
---@field ButtonText FText
|
|
---@field OperateType TEnumAsByte<EBagOperateType>
|
|
--Edit Below--
|
|
local WBP_OperateButton = {
|
|
bInitDoOnce = false,
|
|
FittingType = nil,
|
|
bClickButton = false,
|
|
ValText = nil,
|
|
};
|
|
|
|
function WBP_OperateButton:Construct()
|
|
self.Button_Title.OnClicked:Add(WBP_OperateButton.OnClickTitle, self)
|
|
self.WidgetSwitcher_BG:SetActiveWidgetIndex(1)
|
|
self:SetDefaultText()
|
|
end
|
|
|
|
function WBP_OperateButton:Destruct()
|
|
self.Button_Title.OnClicked:Remove(WBP_OperateButton.OnClickTitle, self)
|
|
end
|
|
|
|
function WBP_OperateButton:OnClickTitle()
|
|
-- 设置数据进去
|
|
-- 设置对应数据进去
|
|
self:ClickTitle(self.bClickButton)
|
|
UIManager:ClosePanel(EUIType.UseSkill)
|
|
end
|
|
|
|
function WBP_OperateButton:ClickTitle(bClicked)
|
|
-- 需要根据具体类型进行判断
|
|
if bClicked then self:OtherOperate() else self:StartOperate() end
|
|
end
|
|
|
|
function WBP_OperateButton:StartOperate()
|
|
-- 是执行对应操作,比如合成就是要选择三个
|
|
-- 说明此时是显示
|
|
if self.OperateType == EBagOperateType.Reset then
|
|
-- 检查一下背包中的数量
|
|
local PC = STExtraGameplayStatics.GetFirstPlayerController(self)
|
|
local Stones = PC:GetItemMapByItemType(EItemType.SubstituteStone)
|
|
local ItemCount = 0
|
|
if Stones ~= nil then
|
|
for _, v in pairs(Stones) do
|
|
ItemCount = ItemCount + v
|
|
end
|
|
end
|
|
if ItemCount <= 0 then
|
|
UIManager:ShowGeneralNotice("置换石的数量不足,请检查一下", true)
|
|
return
|
|
end
|
|
end
|
|
EventSystem:SendEvent(EventType.BagOperation, self.OperateType)
|
|
|
|
print(string.format('当前点击的按钮的类型是:%d', self.OperateType))
|
|
self.TextBlock_Title:SetText("取消")
|
|
self.WidgetSwitcher_BG:SetActiveWidgetIndex(0)
|
|
self.bClickButton = true
|
|
end
|
|
|
|
function WBP_OperateButton:OtherOperate()
|
|
EventSystem:SendEvent(EventType.CancelBagOperation, self.OperateType)
|
|
-- 说明此时就是取消
|
|
self:SetDefaultText()
|
|
end
|
|
|
|
function WBP_OperateButton:SetDefaultText()
|
|
self.bClickButton = false
|
|
self.TextBlock_Title:SetText(self.ButtonText)
|
|
self.WidgetSwitcher_BG:SetActiveWidgetIndex(1)
|
|
end
|
|
|
|
return WBP_OperateButton; |