---@class WB_MiniGameItem_C:UUserWidget ---@field Button_Select UButton ---@field Image_Map UImage ---@field Image_PerfectCompletion UImage ---@field Overlay_Defaut UOverlay ---@field Overlay_IsNew UOverlay ---@field Overlay_IsSelect UOverlay ---@field Overlay_IsVote UOverlay ---@field Overlay_ShowName UOverlay ---@field TextBlock_MapName UTextBlock ---@field TextBlock_SpecialModeName UTextBlock ---@field WidgetSwitcher_VoteState UWidgetSwitcher --Edit Below-- local WB_MiniGameItem = { bInitDoOnce = false; MiniGameType = nil; SelectCallBackFunc = nil; SelectCallBackObj = nil; IsSelected = false; }; --[==[ Construct function WB_MiniGameItem:Construct() end -- Construct ]==] -- function WB_MiniGameItem:Tick(MyGeometry, InDeltaTime) -- end -- function WB_MiniGameItem:Destruct() -- end function WB_MiniGameItem:Init(InMiniGameType, InSelectCallBackFunc, InSelectCallBackObj) self.MiniGameType = InMiniGameType self.SelectCallBackFunc = InSelectCallBackFunc self.SelectCallBackObj = InSelectCallBackObj WidgetLibrary.BindButtonClicked(self.Button_Select, self.ClickSelect, self) -- UGCEventSystem.AddListener(EventEnum.SelectMiniGameCallBack, self.SelectMiniGameCallBack, self) UGCEventSystem.AddListener(EventEnum.UpdatePlayerSelectMiniMapType, self.UpdatePlayerSelectMiniMapType, self) local MiniGameInfo = MiniGameConfig.MiniGameInfo[InMiniGameType] if MiniGameInfo then self.TextBlock_MapName:SetText(MiniGameInfo.MiniGameName) local SelectTex = UGCSystemLibrary.LoadAsset(MiniGameInfo.SelectImage, true) if SelectTex then self.Image_Map:SetBrushFromTexture(SelectTex) end if MiniGameInfo.IsNew then self.Overlay_IsNew:SetVisibility(ESlateVisibility.SelfHitTestInvisible) end end self:SelectMiniGameCallBack(UGCGameSystem.GameState:GetPlayerSelectMiniGameTypes()) end function WB_MiniGameItem:ClickSelect() if self.SelectCallBackFunc then if self.SelectCallBackObj then self.SelectCallBackFunc(self.SelectCallBackObj, self.MiniGameType) else self.SelectCallBackFunc(self.MiniGameType) end end end function WB_MiniGameItem:SelectType(InMiniGameType) if InMiniGameType == self.MiniGameType then self.Overlay_ShowName:SetVisibility(ESlateVisibility.HitTestInvisible) else self.Overlay_ShowName:SetVisibility(ESlateVisibility.Collapsed) end if not self.IsSelected then if InMiniGameType == self.MiniGameType then self.WidgetSwitcher_VoteState:SetActiveWidgetIndex(1) else self.WidgetSwitcher_VoteState:SetActiveWidgetIndex(0) end end end function WB_MiniGameItem:SelectMiniGameCallBack(IsSucceed, InMiniGameType) if IsSucceed and InMiniGameType == self.MiniGameType then self.IsSelected = true self.WidgetSwitcher_VoteState:SetActiveWidgetIndex(2) end end function WB_MiniGameItem:UpdatePlayerSelectMiniMapType(PlayerSelectMiniGameTypes) if table.hasValue(PlayerSelectMiniGameTypes, self.MiniGameType) then self.IsSelected = true self.WidgetSwitcher_VoteState:SetActiveWidgetIndex(2) end end function WB_MiniGameItem:GetMiniGameType() return self.MiniGameType end function WB_MiniGameItem:UpdateStarCount(InStartCount) if InStartCount and InStartCount >= 3 then self.Image_PerfectCompletion:SetVisibility(ESlateVisibility.SelfHitTestInvisible) else self.Image_PerfectCompletion:SetVisibility(ESlateVisibility.Collapsed) end end return WB_MiniGameItem;