469 lines
19 KiB
Lua
Raw Permalink Normal View History

2025-01-04 23:00:19 +08:00
WidgetConfig = WidgetConfig or {}
WidgetConfig.EUILayerGroup = {
Negative = -1,
Least = 0,
Bottom = 1,
Low = 2,
Low_Add1 = 3,
MainUI = 10003,
Medium = 10004,
High = 10005,
Top = 10006,
Notice = 10007,
Tip = 10008,
}
WidgetConfig.EUIType = {
Default = 0,
WaitingTime = 1, -- 等待时间
Ranking = 2, -- 排行榜单
Settlement = 3, -- 结算界面
InsufficientNumberOfPeople = 4, -- 人数不足
InvincibleTime = 5, -- 无敌时间
DamageAnim = 6, -- 给予伤害后的动画
-- KillInfo = 7, -- 击杀信息
Guide = 8, -- 玩法说明
FightPanel = 9, -- 战斗界面
PlaceModeMainMenu = 10, -- 放置模式玩法主菜单
PlaceMode = 11, -- 放置模式UI
ShowPlaceCode = 12, -- 显示放置代码
ImportPlaceCode = 13, -- 导入放置代码
RunMapTest = 14, -- 跑图测试
RunMapFailure = 15, -- 跑图失败
SaveMap = 16, -- 保存地图
MapOperate = 17, -- 对以有的放置地图进行操作
ReplaceSavedMap = 18, -- 选择替换的地图
RoundFinish = 19, -- 回合结算
PreviewMap = 20, -- 预览地图
Currency = 21, -- 货币栏
Countdown = 22, -- 通用倒计时
Task = 23, -- 任务界面
WeaponSelect = 24, -- 武器配置选择
ReselectWeaponBtn = 25, -- 重选武器界面
TeamChangeTip = 26, -- 队伍变换提示
SelectBuff = 27, -- 增益选择框
SecondaryConfirmation = 100, -- 二次确认框
SecondaryConfirmation_Strip = 101, -- 二次确认条
SecondaryConfirmation_EditableText = 102, -- 二次确认命名文本
Debug = 1000, -- 测试UI
}
WidgetConfig.PlaceModeUI = {
WidgetConfig.EUIType.Guide;
WidgetConfig.EUIType.InvincibleTime;
WidgetConfig.EUIType.DamageAnim;
WidgetConfig.EUIType.PlaceModeMainMenu;
WidgetConfig.EUIType.PlaceMode;
WidgetConfig.EUIType.ShowPlaceCode;
WidgetConfig.EUIType.ImportPlaceCode;
WidgetConfig.EUIType.RunMapTest;
WidgetConfig.EUIType.RunMapFailure;
WidgetConfig.EUIType.SaveMap;
WidgetConfig.EUIType.MapOperate;
WidgetConfig.EUIType.ReplaceSavedMap;
WidgetConfig.EUIType.PreviewMap;
WidgetConfig.EUIType.Currency;
WidgetConfig.EUIType.SecondaryConfirmation;
WidgetConfig.EUIType.SecondaryConfirmation_Strip;
WidgetConfig.EUIType.SecondaryConfirmation_EditableText;
WidgetConfig.EUIType.Countdown;
WidgetConfig.EUIType.Task;
WidgetConfig.EUIType.Debug;
}
WidgetConfig.PlayModeUI = {
WidgetConfig.EUIType.Guide;
WidgetConfig.EUIType.InvincibleTime;
WidgetConfig.EUIType.DamageAnim;
WidgetConfig.EUIType.WaitingTime;
WidgetConfig.EUIType.Ranking;
WidgetConfig.EUIType.Settlement;
WidgetConfig.EUIType.InsufficientNumberOfPeople;
WidgetConfig.EUIType.DamageAnim;
WidgetConfig.EUIType.FightPanel;
WidgetConfig.EUIType.WeaponSelect;
WidgetConfig.EUIType.ReselectWeaponBtn;
WidgetConfig.EUIType.TeamChangeTip;
WidgetConfig.EUIType.RoundFinish;
-- WidgetConfig.EUIType.SelectBuff;
}
WidgetConfig.SyncShowPlaceModeWidget = {
WidgetConfig.EUIType.PlaceModeMainMenu,
WidgetConfig.EUIType.PlaceMode,
WidgetConfig.EUIType.PlaceModeMainMenu,
WidgetConfig.EUIType.RunMapTest,
WidgetConfig.EUIType.RunMapFailure,
WidgetConfig.EUIType.SaveMap,
WidgetConfig.EUIType.PreviewMap,
}
WidgetConfig.SyncShowPlayModeWidget = {
WidgetConfig.EUIType.WaitingTime,
WidgetConfig.EUIType.FightPanel,
WidgetConfig.EUIType.RoundFinish,
WidgetConfig.EUIType.Settlement,
WidgetConfig.EUIType.InsufficientNumberOfPeople,
}
WidgetConfig.CustomWidget = {
WidgetConfig.EUIType.FightPanel,
WidgetConfig.EUIType.SelectBuff,
}
WidgetConfig.Configs = {
[WidgetConfig.EUIType.Debug] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Debug/WB_Debug.WB_Debug_C');
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.WaitingTime] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/GamePreparation/W_WaitPlayJoin.W_WaitPlayJoin_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = false,
},
[WidgetConfig.EUIType.Ranking] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Rank/WB_TeamRank.WB_TeamRank_C'),
Layer = WidgetConfig.EUILayerGroup.Low_Add1,
ShowOnce = false,
},
[WidgetConfig.EUIType.Settlement] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Settlement/WB_ParkourSettlement.WB_ParkourSettlement_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.InsufficientNumberOfPeople] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/WB_GameUnableToStart.WB_GameUnableToStart_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = false,
},
[WidgetConfig.EUIType.InvincibleTime] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/W_InvincibleTime.W_InvincibleTime_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.DamageAnim] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/W_DamageAnim.W_DamageAnim_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.Guide] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Guide/WB_Guide.WB_Guide_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.FightPanel] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/FightPanel/WB_FightPanel.WB_FightPanel_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.PlaceMode] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlacePanel/WB_PlacePanel.WB_PlacePanel_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.ShowPlaceCode] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlacePanel/WB_ShowPlaceCode.WB_ShowPlaceCode_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.ImportPlaceCode] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlacePanel/WB_ImportPlaceCode.WB_ImportPlaceCode_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.PlaceModeMainMenu] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlaceGameMenu/WB_PlaceGameMenu.WB_PlaceGameMenu_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.RunMapTest] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/RunMapPanel/WB_RunMapPanel.WB_RunMapPanel_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.RunMapFailure] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/RunMapPanel/WB_RerunPanel.WB_RerunPanel_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.SaveMap] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/RunMapPanel/WB_SaveMap.WB_SaveMap_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.MapOperate] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlaceGameMenu/WB_MapOperate.WB_MapOperate_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.ReplaceSavedMap] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/ReplaceSavedMap/WB_ReplaceSavedMap.WB_ReplaceSavedMap_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = false,
},
[WidgetConfig.EUIType.RoundFinish] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Round/WB_RoundFinish2.WB_RoundFinish2_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.PreviewMap] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlaceGameMenu/WB_PreviewMap.WB_PreviewMap_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.Currency] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Currency/WB_Currency.WB_Currency_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.SecondaryConfirmation] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SecondaryConfirmation/WB_SecondaryConfirmation.WB_SecondaryConfirmation_C'),
Layer = WidgetConfig.EUILayerGroup.Notice,
ShowOnce = false,
},
[WidgetConfig.EUIType.SecondaryConfirmation_Strip] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SecondaryConfirmation/WB_SecondaryConfirmation_Strip.WB_SecondaryConfirmation_Strip_C'),
Layer = WidgetConfig.EUILayerGroup.Notice,
ShowOnce = false,
},
[WidgetConfig.EUIType.SecondaryConfirmation_EditableText] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SecondaryConfirmation/WB_SecondaryConfirmation_EditableText.WB_SecondaryConfirmation_EditableText_C'),
Layer = WidgetConfig.EUILayerGroup.Notice,
ShowOnce = false,
},
[WidgetConfig.EUIType.ReselectWeaponBtn] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SelectWeapon/WB_ReselectWeaponBtn.WB_ReselectWeaponBtn_C'),
Layer = WidgetConfig.EUILayerGroup.MainUI,
ShowOnce = false,
},
[WidgetConfig.EUIType.TeamChangeTip] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Tip/W_TeamTip.W_TeamTip_C'),
Layer = WidgetConfig.EUILayerGroup.Notice,
ShowOnce = false,
},
[WidgetConfig.EUIType.Countdown] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/WB_Countdown.WB_Countdown_C'),
Layer = WidgetConfig.EUILayerGroup.Notice,
ShowOnce = false,
},
[WidgetConfig.EUIType.Task] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Task/WB_Task.WB_Task_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.WeaponSelect] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SelectWeapon/WB_WeaponSelect.WB_WeaponSelect_C'),
Layer = WidgetConfig.EUILayerGroup.High,
ShowOnce = false,
},
[WidgetConfig.EUIType.SelectBuff] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SelectBuff/WB_SelectIncrease.WB_SelectIncrease_C'),
Layer = WidgetConfig.EUILayerGroup.MainUI,
ShowOnce = false,
},
}
function WidgetConfig.GetWidgetPathFromUIType(UIType)
if not WidgetConfig.CheckUIType(UIType) then return end
return WidgetConfig.Configs[UIType].Widget
end
function WidgetConfig.GetWidgetLayer(UIType)
if not WidgetConfig.CheckUIType(UIType) then return end
return WidgetConfig.Configs[UIType].Layer
end
function WidgetConfig.GetWidgetShowOnce(UIType)
if not WidgetConfig.CheckUIType(UIType) then return end
return WidgetConfig.Configs[UIType].ShowOnce
end
function WidgetConfig.CheckUIType(UIType)
return (WidgetConfig.Configs[UIType] ~= nil)
end
function WidgetConfig.GetAllWidgetTypeFromLayer(Layer)
local Res = {}
for UIType, _ in pairs(WidgetConfig.Configs) do
if WidgetConfig.GetWidgetLayer(UIType) == Layer then
Res[#Res + 1] = UIType
end
end
return Res
end
-- HideUI --------------------------------------------------------------------------------------------------------------------------------
--- 默认UI的隐藏
function WidgetConfig.HideDefaultUI()
--- 隐藏平底锅切换扔出模式
--- ShootingUI.Customize_ThrowPlus:SetAdvancedCollapsed(true)
--- local MainControlPanel = UGCWidgetManagerSystem.GetMainControlUI()
-- local MainControlPanel = GameBusinessManager.GetWidgetFromName(ingame, "MainControlPanelTochButton_C")
local MainControlPanel = UGCWidgetManagerSystem.GetMainUI()
if MainControlPanel ~= nil then
local MainControlBaseUITemp = MainControlPanel.MainControlBaseUI;
MainControlBaseUITemp.Image_IngameLogo:SetVisibility(ESlateVisibility.Collapsed) --- 局内游戏Logo
MainControlBaseUITemp.Image_0:SetVisibility(ESlateVisibility.Collapsed) --- 指南针指针
MainControlBaseUITemp.NavigatorPanel:SetVisibility(ESlateVisibility.Collapsed) --- 指南针界面
MainControlBaseUITemp.SurviveInfoPanel:SetVisibility(ESlateVisibility.Collapsed) --- 存活人数
-- MainControlBaseUITemp.CanvasPanel_HelmetArmor:SetVisibility(ESlateVisibility.Collapsed) --- 头盔、护甲按钮
MainControlBaseUITemp.CanvasPanelSurviveKill:SetVisibility(ESlateVisibility.Collapsed) --- 剩余人数、淘汰数
MainControlBaseUITemp.SignalReceivingAreaTIPS_UIBP:SetVisibility(ESlateVisibility.Collapsed) --- 信号区提示
MainControlBaseUITemp.CircleChasingProgress:SetVisibility(ESlateVisibility.Collapsed) --- 刷圈进度
MainControlBaseUITemp.IsNeedTeamPanel = false --- 不显示队友面板
MainControlBaseUITemp.CanvasPanel_BackpackPanel:AddAdvancedCollapsedCount(1) --- 背包按钮
-- UGCWidgetManagerSystem.SubWidgetHiddenLayer(MainControlBaseUITemp.ChangeSight_UIBP.CanvasPanel_Sight)--- 倍镜切换
MainControlBaseUITemp.CanvasPanel_MiniMapAndSetting:SetAdvancedCollapsed(ESlateVisibility.Collapsed); --小地图
local ShootingPanel = UGCWidgetManagerSystem.GetShootingUIPanel()
if ShootingPanel then
ShootingPanel.SwitchWeaponSlot_Mode2:SetVisibility(ESlateVisibility.Collapsed) --- 左武器栏
ShootingPanel.SwitchWeaponSlot_Mode2_C_0:SetVisibility(ESlateVisibility.Collapsed) --- 右武器栏
else
UGCLogSystem.LogError("[WidgetConfig_HideDefaultUI] ShootingPanel is nil")
end
--MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2:SetVisibility(ESlateVisibility.Collapsed) --- 右武器栏
--MultiLayer_RightWeaponSlot
--折叠二号武器槽位
--MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2.Image_Selected:SetVisibility(ESlateVisibility.Collapsed)
--MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2.GridPanel_FireMode:SetVisibility(ESlateVisibility.Collapsed)
--MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2.MultiLayer_Pistol:SetVisibility(ESlateVisibility.Collapsed)
--local ShootingUIPanel = MainControlPanel.ShootingUIPanel
--ShootingUIPanel:SetVisibility(ESlateVisibility.Collapsed) ---不显示战斗界面
end
-- UGCWidgetManagerSystem.LoadLobbyChatFrameUI() --- 加载大厅聊天框UI
end
WidgetConfig.EDefaultUIMode = {
None = 1;
Menu = 2;
PlaceMode = 3;
}
WidgetConfig.NowDefaultUIMode = WidgetConfig.EDefaultUIMode.None
WidgetConfig.bInitializedHideWidgetInfo = false
function WidgetConfig.InitHideWidgetInfo()
if WidgetConfig.bInitializedHideWidgetInfo then return end
local MainControlPanel = GameBusinessManager.GetWidgetFromName(ingame, "MainControlPanelTochButton_C");
local PlayerInfoPanel = GameBusinessManager.GetWidgetFromName(ingame, "PlayerInfoPanel_C")
WidgetConfig.HideWidgetInfo = {
[WidgetConfig.EDefaultUIMode.Menu] = {
--MainControlPanel.MainControlBaseUI.Canvas_Speaker,
--MainControlPanel.MainControlBaseUI.Canvas_Microphone,
--MainControlPanel.MainControlBaseUI.CanvasPanel_RunState,
--MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas,
--MainControlPanel.MainControlBaseUI.Canvas_Speaker,
--MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas,
--MainControlPanel.MainControlBaseUI.CanvasPanel_FreeCamera,
MainControlPanel.MainControlBaseUI,
MainControlPanel.ShootingUIPanel
},
[WidgetConfig.EDefaultUIMode.PlaceMode] = {
--MainControlPanel.MainControlBaseUI.Canvas_Speaker,
--MainControlPanel.MainControlBaseUI.Canvas_Microphone,
--MainControlPanel.MainControlBaseUI.CanvasPanel_RunState,
--MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas,
--MainControlPanel.MainControlBaseUI.Canvas_Speaker,
--MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas,
--MainControlPanel.MainControlBaseUI.CanvasPanel_FreeCamera,
MainControlPanel.MainControlBaseUI,
MainControlPanel.ShootingUIPanel.CustomFireBtnR,
MainControlPanel.ShootingUIPanel.CustomFireBtnL,
MainControlPanel.ShootingUIPanel.SwitchWeaponSlot_Mode2,
MainControlPanel.ShootingUIPanel.SwitchWeaponSlot_Mode2_C_0,
},
}
WidgetConfig.bInitializedHideWidgetInfo = true
end
function WidgetConfig.SetDefaultUIMode(InDefaultUIMode)
if not table.hasValue(WidgetConfig.EDefaultUIMode, InDefaultUIMode) then
return
end
WidgetConfig.InitHideWidgetInfo()
if WidgetConfig.NowDefaultUIMode ~= InDefaultUIMode then
if WidgetConfig.NowDefaultUIMode ~= WidgetConfig.EDefaultUIMode.None then
end
WidgetConfig.NowDefaultUIMode = InDefaultUIMode
if WidgetConfig.NowDefaultUIMode == WidgetConfig.EDefaultUIMode.None then
return
end
local HideWidgetList = WidgetConfig.HideWidgetInfo[WidgetConfig.NowDefaultUIMode]
for i, v in pairs(HideWidgetList) do
v:SetVisibility(ESlateVisibility.Collapsed);
end
end
end
function WidgetConfig.RemoveDefaultUIMode(InDefaultUIMode)
if not table.hasValue(WidgetConfig.EDefaultUIMode, InDefaultUIMode) or WidgetConfig.NowDefaultUIMode ~= InDefaultUIMode then
return
end
WidgetConfig.InitHideWidgetInfo()
local HideWidgetList = WidgetConfig.HideWidgetInfo[InDefaultUIMode]
for i, v in pairs(HideWidgetList) do
v:SetVisibility(ESlateVisibility.SelfHitTestInvisible);
end
WidgetConfig.NowDefaultUIMode = WidgetConfig.EDefaultUIMode.None
end
-- HideUI --------------------------------------------------------------------------------------------------------------------------------