145 lines
5.3 KiB
Lua
145 lines
5.3 KiB
Lua
---@class WB_PlaceGameMenu_C:UUserWidget
|
|
---@field Button_Play UButton
|
|
---@field Button_PreviewMap UButton
|
|
---@field Button_Tasks UButton
|
|
---@field Button_ToPlaceMode UNewButton
|
|
---@field DefaultMapItem UWB_SavedMap_C
|
|
---@field NoneMapItem UWB_SavedMap_C
|
|
---@field TextBlock_MapName UTextBlock
|
|
---@field VerticalBox_SavedMap UVerticalBox
|
|
---@field WidgetSwitcher_Play UWidgetSwitcher
|
|
--Edit Below--
|
|
local WB_PlaceGameMenu = {
|
|
bInitDoOnce = false;
|
|
bCanReqesetMatch = true;
|
|
bIsShow = false;
|
|
DoOnceOpenSettingPanel = false;
|
|
};
|
|
|
|
|
|
function WB_PlaceGameMenu:Construct()
|
|
UGCLogSystem.Log("[WB_PlaceGameMenu_Construct]")
|
|
WidgetLibrary.BindButtonClicked(self.Button_ToPlaceMode, self.ToPlaceMode, self)
|
|
WidgetLibrary.BindButtonClicked(self.Button_Play, self.ReqesetMatch, self)
|
|
WidgetLibrary.BindButtonClicked(self.Button_PreviewMap, self.PreviewMap, self)
|
|
--WidgetLibrary.BindButtonClicked(self.NewButton_Setting, self.ShowSettingPanel, self)
|
|
WidgetLibrary.ButtonOnClickShowPanel(self.Button_Tasks, WidgetConfig.EUIType.Task)
|
|
|
|
UGCEventSystem.AddListener(ArchiveDataConfig.GetParamNotifyEvent(ArchiveDataConfig.EArchiveType.SavedMap), self.UpdateSavedMap, self)
|
|
--UGCEventSystem.AddListener(EventEnum.UpdatePlayMap, self.UpdatePlayMap, self)
|
|
UGCEventSystem.AddListener(ArchiveDataConfig.GetParamNotifyEvent(ArchiveDataConfig.EArchiveType.SelectMapIndex), self.UpdatePlayMap, self)
|
|
|
|
--- 显示二次匹配按键
|
|
UGCMultiMode.SetModeChooseUIVisible(true)
|
|
self.Button_Play:SetVisibility(ESlateVisibility.Collapsed)
|
|
|
|
self:InitSavedMapBtn()
|
|
self:UpdateSavedMap()
|
|
self:UpdatePlayMap()
|
|
end
|
|
|
|
|
|
function WB_PlaceGameMenu:OnShowPanel()
|
|
self.bIsShow = true
|
|
UGCMultiMode.SetModeChooseButtonVisible(false)
|
|
WidgetConfig.SetDefaultUIMode(WidgetConfig.EDefaultUIMode.Menu)
|
|
end
|
|
|
|
function WB_PlaceGameMenu:OnClosePanel()
|
|
self.bIsShow = false
|
|
WidgetConfig.RemoveDefaultUIMode(WidgetConfig.EDefaultUIMode.Menu)
|
|
end
|
|
|
|
function WB_PlaceGameMenu:CheckModeChooseUIVisible()
|
|
UGCMultiMode.SetModeChooseUIVisible(self.bIsShow)
|
|
end
|
|
|
|
function WB_PlaceGameMenu:Tick(MyGeometry, InDeltaTime)
|
|
UGCMultiMode.SetModeState(PlacementModeConfig.PlaceModeID, false)
|
|
end
|
|
|
|
function WB_PlaceGameMenu:ToPlaceMode()
|
|
-- 发送信息进入放置模式
|
|
UGCSendRPCSystem.ActorRPCNotify(nil, UGCGameSystem.GameState, "ShowSimplePlaceModeUI", WidgetConfig.EUIType.PlaceMode)
|
|
end
|
|
|
|
-- function WB_PlaceGameMenu:Destruct()
|
|
|
|
-- end
|
|
|
|
function WB_PlaceGameMenu:InitSavedMapBtn()
|
|
self.NoneMapItem:Init(self.ClickNoneTemplate, self, nil, "空模板")
|
|
self.NoneMapItem:SetIsDefaultSavedMap(true)
|
|
self.DefaultMapItem:Init(self.ClickDefaultTemplate, self, nil, "默认模板")
|
|
self.DefaultMapItem:SetIsDefaultSavedMap(true)
|
|
for i = 0, self.VerticalBox_SavedMap:GetChildrenCount() - 1 do
|
|
local Item = self.VerticalBox_SavedMap:GetChildAt(i)
|
|
Item:Init(self.ClickSavedMapTemplate, self, i + 1, "Nil")
|
|
end
|
|
end
|
|
|
|
function WB_PlaceGameMenu:ClickNoneTemplate()
|
|
WidgetManager:ShowPanel(WidgetConfig.EUIType.MapOperate, false, PlacementModeConfig.LoadPlaceItemsType.None)
|
|
end
|
|
|
|
function WB_PlaceGameMenu:ClickDefaultTemplate()
|
|
WidgetManager:ShowPanel(WidgetConfig.EUIType.MapOperate, false, PlacementModeConfig.LoadPlaceItemsType.Default)
|
|
end
|
|
|
|
function WB_PlaceGameMenu:ClickSavedMapTemplate(Index, CanUse)
|
|
WidgetManager:ShowPanel(WidgetConfig.EUIType.MapOperate, false, PlacementModeConfig.LoadPlaceItemsType.SavedMap, Index, CanUse)
|
|
end
|
|
|
|
function WB_PlaceGameMenu:ReqesetMatch()
|
|
if self.bCanReqesetMatch then
|
|
|
|
self.bCanReqesetMatch = false
|
|
self.WidgetSwitcher_Play:SetActiveWidgetIndex(1)
|
|
UGCMultiMode.ReqesetMatch(PlacementModeConfig.PlayModeID, self.ReqesetMatchCallBack, self)
|
|
end
|
|
end
|
|
|
|
function WB_PlaceGameMenu:ReqesetMatchCallBack(...)
|
|
self.bCanReqesetMatch = true
|
|
self.WidgetSwitcher_Play:SetActiveWidgetIndex(0)
|
|
UGCLogSystem.LogTree("[WB_PlaceGameMenu_ReqesetMatchCallBack]", table.pack(...))
|
|
end
|
|
|
|
function WB_PlaceGameMenu:UpdateSavedMap()
|
|
local SimplePlayerSavedMapList = ArchiveDataConfig.GetPlayerArchiveDataFromType(UGCSystemLibrary.GetLocalPlayerKey(), ArchiveDataConfig.EArchiveType.SavedMap)
|
|
if SimplePlayerSavedMapList == nil then
|
|
SimplePlayerSavedMapList = {}
|
|
end
|
|
for i = 0, self.VerticalBox_SavedMap:GetChildrenCount() - 1 do
|
|
local Item = self.VerticalBox_SavedMap:GetChildAt(i)
|
|
local MapInfo = SimplePlayerSavedMapList[i + 1]
|
|
if MapInfo then
|
|
Item:ResetName(MapInfo.MapName)
|
|
Item:ResetCode(MapInfo.MapCode)
|
|
Item:SetVisibility(ESlateVisibility.SelfHitTestInvisible)
|
|
else
|
|
Item:SetVisibility(ESlateVisibility.Collapsed)
|
|
end
|
|
end
|
|
end
|
|
|
|
function WB_PlaceGameMenu:UpdatePlayMap()
|
|
local SelectMapIndex = ArchiveDataConfig.GetPlayerArchiveDataFromType(UGCSystemLibrary.GetLocalPlayerKey(), ArchiveDataConfig.EArchiveType.SelectMapIndex)
|
|
|
|
self.DefaultMapItem:SetIsSelected(SelectMapIndex == nil)
|
|
for i = 0, self.VerticalBox_SavedMap:GetChildrenCount() - 1 do
|
|
local Item = self.VerticalBox_SavedMap:GetChildAt(i)
|
|
Item:SetIsSelected(SelectMapIndex == i + 1)
|
|
end
|
|
end
|
|
|
|
function WB_PlaceGameMenu:PreviewMap()
|
|
UGCSendRPCSystem.ActorRPCNotify(nil, UGCGameSystem.GameState, "ShowSimplePlaceModeUI", WidgetConfig.EUIType.PreviewMap)
|
|
end
|
|
|
|
|
|
|
|
|
|
return WB_PlaceGameMenu;
|
|
|