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

97 lines
2.8 KiB
Lua

---@class WB_SelectDisableChild_C:UUserWidget
---@field Image_IsNew UImage
---@field NewButton_Change UNewButton
---@field TextBlock_Name UTextBlock
---@field TextBlock_New UTextBlock
---@field WidgetSwitcher_BG UWidgetSwitcher
---@field WidgetSwitcher_IsSelected UWidgetSwitcher
---@field WidgetSwitcher_IsSelectEnable UWidgetSwitcher
--Edit Below--
---@type WB_SelectDisableChild_C
local WB_SelectDisableChild = {
bInitDoOnce = false;
EnableType = false; -- 该变量要同步改变
}
function WB_SelectDisableChild:Construct()
self:LuaInit();
end
function WB_SelectDisableChild:LuaInit()
if self.bInitDoOnce then return ; end
self.bInitDoOnce = true;
-- 绑定按键
UITool.BindButtonClicked(self.NewButton_Change, self.OnClickDisable, self);
end
function WB_SelectDisableChild:OnClickDisable()
-- 直接发送
self.EnableType = not self.EnableType;
UGCLogSystem.Log("[WB_SelectDisableChild:OnClickDisable] EnableType = %s", tostring(self.EnableType));
self:SetSelected(self.EnableType);
GameState:SendMiniGameRPC("SetEnableDisableType", LocalPlayerKey, self.DisableType, self.EnableType);
-- self.TextBlock_New:SetVisibility(ESlateVisibility.Collapsed);
end
WB_SelectDisableChild.DisableType = nil;
function WB_SelectDisableChild:SetDisableType(InType)
self.DisableType = InType;
-- 初始化名字
if DisableInfo[InType] ~= nil then
--- 所有默认都是不勾选的,因此此处要改用为启用
if DisableInfo[InType].Default then
self.TextBlock_Name:SetText("启用" .. DisableInfo[InType].Name);
else
self.TextBlock_Name:SetText("禁用" .. DisableInfo[InType].Name);
end
if DisableInfo[InType].New then
self.TextBlock_New:SetVisibility(ESlateVisibility.SelfHitTestInvisible);
else
self.TextBlock_New:SetVisibility(ESlateVisibility.Collapsed);
end
if DisableInfo[InType].IsSelectEnable then
self.WidgetSwitcher_IsSelectEnable:SetActiveWidgetIndex(1)
end
end
local ArchiveData = ArchiveTable[LocalPlayerKey]
if ArchiveData then
if ArchiveData.Disables == nil or ArchiveData.Disables[InType] == nil then return; end -- 使用默认的
self.EnableType = ArchiveData.Disables[InType];
self:SetSelected(self.EnableType);
end
end
function WB_SelectDisableChild:GetDisableType() return self.DisableType; end
-- 设置是否已选择
function WB_SelectDisableChild:SetSelected(InSelect)
if InSelect then
self.WidgetSwitcher_IsSelected:SetActiveWidgetIndex(1)
self.WidgetSwitcher_BG:SetActiveWidgetIndex(1)
else
self.WidgetSwitcher_IsSelected:SetActiveWidgetIndex(0)
self.WidgetSwitcher_BG:SetActiveWidgetIndex(0)
end
end
function WB_SelectDisableChild:SetInitSelected(IsSelect)
self.EnableType = IsSelect;
self:SetSelected(self.EnableType);
end
-- function WB_SelectDisableChild:Tick(MyGeometry, InDeltaTime)
-- end
-- function WB_SelectDisableChild:Destruct()
-- end
return WB_SelectDisableChild