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

311 lines
14 KiB
Lua

WidgetConfig = WidgetConfig or {}
--- 默认UI的隐藏
function WidgetConfig.HideDefaultUI()
--- 隐藏平底锅切换扔出模式
--- ShootingUI.Customize_ThrowPlus:SetAdvancedCollapsed(true)
--- local MainControlPanel = UGCWidgetManagerSystem.GetMainControlUI()
local MainControlPanel = GameBusinessManager.GetWidgetFromName(ingame, "MainControlPanelTochButton_C")
local TeamPlane = GameBusinessManager.GetWidgetFromName(ingame, "Ingame_TeamPanelNew_BP_C")
if MainControlPanel ~= nil then
local MainControlBaseUI = MainControlPanel.MainControlBaseUI;
--MainControlBaseUI.Ingame_TeamPanel_BP:SetVisibility(ESlateVisibility.Visible);
MainControlBaseUI.Image_IngameLogo:SetVisibility(ESlateVisibility.Collapsed) --- 局内游戏Logo
MainControlBaseUI.Image_0:SetVisibility(ESlateVisibility.Collapsed) --- 指南针指针
MainControlBaseUI.NavigatorPanel:SetVisibility(ESlateVisibility.Collapsed) --- 指南针界面
MainControlBaseUI.SurviveInfoPanel:SetVisibility(ESlateVisibility.Collapsed) --- 存活人数
--- MainControlBaseUI.CanvasPanel_BackpackPanel:SetVisibility(ESlateVisibility.Collapsed) --- 背包按钮
MainControlBaseUI.CanvasPanel_HelmetArmor:SetVisibility(ESlateVisibility.Collapsed) --- 头盔、护甲按钮
MainControlBaseUI.CanvasPanelSurviveKill:SetVisibility(ESlateVisibility.Collapsed) --- 剩余人数、淘汰数
MainControlBaseUI.SignalReceivingAreaTIPS_UIBP:SetVisibility(ESlateVisibility.Collapsed) --- 信号区提示
MainControlBaseUI.CircleChasingProgress:SetVisibility(ESlateVisibility.Collapsed) --- 刷圈进度
MainControlBaseUI.IsNeedTeamPanel = true --- 不显示队友面板
MainControlBaseUI.CanvasPanel_MiniMapAndSetting:SetAdvancedCollapsed(ESlateVisibility.Collapsed); --小地图
MainControlBaseUI.CanvasPanel_BackpackPanel:AddAdvancedCollapsedCount(1) --- 背包按钮
-- MainControlBaseUI.Ingame_TeamPanelNew_BP
-- MainControlBaseUI.Ingame_TeamPanel_BP:SetVisibility(ESlateVisibility.Visible); --- 显示队友血量等信息
MainControlBaseUI.ChangeSight_UIBP.CanvasPanel_Sight:SetVisibility(ESlateVisibility.Visible);
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
--- local ShootingUIPanel = MainControlPanel.ShootingUIPanel
--- ShootingUIPanel:SetVisibility(ESlateVisibility.Collapsed) ---不显示战斗界面
end
if TeamPlane then
TeamPlane:SetVisibility(ESlateVisibility.Visible);
else
UGCLogSystem.LogError("[WidgetConfig_HideDefaultUI] TeamPlane is nil")
end
--- UGCWidgetManagerSystem.LoadLobbyChatFrameUI() --- 加载大厅聊天框UI
end
WidgetConfig.EUILayerGroup = {
Negative = -1,
Least = 0,
Bottom = 1,
Low = 2,
Low_Add1 = 3,
MainUI = 10003,
Medium = 10004,
High = 10005,
Guide = 10006,
Top = 10007,
Toppest = 10008,
Notice = 10009,
}
WidgetConfig.EUIType = {
Default = 0,
WaitingTime = 1, --- 等待时间
Ranking = 2, --- 排行榜单
Settlement = 3, --- 结算界面
InsufficientNumberOfPeople = 4, --- 人数不足
InvincibleTime = 5, --- 无敌时间
DamageAnim = 6, --- 给予伤害后的动画
KillInfo = 7, --- 击杀信息
Guide = 8, --- 玩法说明
FightPanel = 9, --- 战斗界面
HookTrace = 10, --- 抓钩准星
Winner = 11, --- 胜利方
Shop = 12, --- 武器购买
Key = 13, --- 追踪的钥匙
KeyMapSetting = 14, --- 键位设置
RoundReady = 15, --- 回合准备时间
KeyMapSettingBG = 16, --- 键位设置的背景,为的是可以看到其他键位
-- MiniGameUI
DefaultMiniGame = 101, --- 小玩法默认长期加载的UI
MiniGameLoading = 102, --- 小玩法的等待界面
MiniGameFinish = 103, --- 小玩法结束,进行回合结算
MiniGameReady = 104, --- 小玩法准备阶段
ShootingTarget = 111, --- 小玩法标靶UI
MiniGameAllPlayerScore = 112, --- 小玩法泛用玩家得分
ColorScore = 113, --- 颜色得分
PlayerHeight = 114, --- 玩家的高度
CompetitionResponse = 115, --- 玩家反应速度玩法
UIGameBG = 116, --- UI玩法的背景
Jigsaw = 117, --- 拼图玩法界面
CountingHeart = 118, --- 数心形玩法界面
}
-- 互斥UIType
WidgetConfig.MutuallyExclusiveUI = {
WidgetConfig.EUIType.MiniGameFinish,
WidgetConfig.EUIType.MiniGameLoading,
WidgetConfig.EUIType.ShootingTarget,
WidgetConfig.EUIType.MiniGameAllPlayerScore,
WidgetConfig.EUIType.ColorScore,
WidgetConfig.EUIType.PlayerHeight,
WidgetConfig.EUIType.CompetitionResponse,
WidgetConfig.EUIType.Jigsaw,
WidgetConfig.EUIType.CountingHeart,
}
-- 含可设置位置的Widget
WidgetConfig.CustomWidget = {
WidgetConfig.EUIType.Jigsaw
}
function WidgetConfig.AllPCSetMutuallyExclusiveUI(UIType, Params)
local AllPC = UGCGameSystem.GetAllPlayerController()
AllPC:SetMutuallyExclusiveUI(UIType, Params)
end
WidgetConfig.Configs = {
[WidgetConfig.EUIType.WaitingTime] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameSelect/WB_SelectMiniGame.WB_SelectMiniGame_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = true,
},
--[WidgetConfig.EUIType.Ranking] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Rank/WB_TeamRank.WB_TeamRank_C'),
-- Layer = WidgetConfig.EUILayerGroup.Low_Add1,
-- ShowOnce = false,
--},
[WidgetConfig.EUIType.InsufficientNumberOfPeople] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/WB_GameUnableToStart.WB_GameUnableToStart_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = true,
},
[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.Guide,
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.HookTrace] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Hook/WB_HookTraceMove.WB_HookTraceMove_C'),
-- Layer = WidgetConfig.EUILayerGroup.Low,
-- ShowOnce = false,
--},
--[WidgetConfig.EUIType.Winner] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Round/WB_RoundFinish.WB_RoundFinish_C'),
-- Layer = WidgetConfig.EUILayerGroup.MainUI,
-- ShowOnce = false,
--},
--[WidgetConfig.EUIType.Shop] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Shop/W_WeaponShop.W_WeaponShop_C'),
-- Layer = WidgetConfig.EUILayerGroup.High,
-- ShowOnce = false,
--},
--[WidgetConfig.EUIType.Key] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/Blueprint/SceneKey/WB_TraceTarget.WB_TraceTarget_C'),
-- Layer = WidgetConfig.EUILayerGroup.MainUI,
-- ShowOnce = false,
--},
--[WidgetConfig.EUIType.KeyMapSetting] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/FightPanel/KeyMapSetting/WB_KeyMapSetting.WB_KeyMapSetting_C'),
-- Layer = WidgetConfig.EUILayerGroup.Top,
-- ShowOnce = false,
--},
--[WidgetConfig.EUIType.RoundReady] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Round/WB_RoundReady.WB_RoundReady_C'),
-- Layer = WidgetConfig.EUILayerGroup.Top,
-- ShowOnce = false,
--},
--[WidgetConfig.EUIType.KeyMapSettingBG] = {
-- Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/FightPanel/KeyMapSetting/WB_KeyMapSettingBG.WB_KeyMapSettingBG_C'),
-- Layer = WidgetConfig.EUILayerGroup.Negative,
-- ShowOnce = false,
--},
[WidgetConfig.EUIType.DefaultMiniGame] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/WB_PersistentUI.WB_PersistentUI_C'),
Layer = WidgetConfig.EUILayerGroup.Low_Add1,
ShowOnce = false,
},
[WidgetConfig.EUIType.MiniGameFinish] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameFinish/WB_MiniGameFinish.WB_MiniGameFinish_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = false,
},
[WidgetConfig.EUIType.MiniGameLoading] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameLoading/WB_MiniGameLoading.WB_MiniGameLoading_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = false,
},
[WidgetConfig.EUIType.MiniGameReady] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/WB_MiniGameReady.WB_MiniGameReady_C'),
Layer = WidgetConfig.EUILayerGroup.Top,
ShowOnce = false,
},
[WidgetConfig.EUIType.Settlement] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameSettlement/WB_MiniGameSettlement.WB_MiniGameSettlement_C'),
--Layer = WidgetConfig.EUILayerGroup.Top,
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.ShootingTarget] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameModeUI/WB_ShootingTarget.WB_ShootingTarget_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.MiniGameAllPlayerScore] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameModeUI/AllPlayerScore/WB_AllPlayerMiniScore.WB_AllPlayerMiniScore_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.ColorScore] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameModeUI/ColorScore/WB_AllPlayerColorScore.WB_AllPlayerColorScore_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.PlayerHeight] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameModeUI/PlayerHeight/WB_PlayerHeight.WB_PlayerHeight_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.CompetitionResponse] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameModeUI/CompetitionResponse/WB_CompetitionResponse.WB_CompetitionResponse_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = true,
},
[WidgetConfig.EUIType.UIGameBG] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/WB_UIGameBG.WB_UIGameBG_C'),
Layer = WidgetConfig.EUILayerGroup.Negative,
ShowOnce = false,
},
[WidgetConfig.EUIType.Jigsaw] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameModeUI/Jigsaw/WB_Jigsaw.WB_Jigsaw_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = false,
},
[WidgetConfig.EUIType.CountingHeart] = {
Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/MiniGame/MiniGameModeUI/CountingHeartShaped/WB_CountingHeart.WB_CountingHeart_C'),
Layer = WidgetConfig.EUILayerGroup.Low,
ShowOnce = true,
},
}
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