97 lines
2.8 KiB
Lua
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 |