Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,216 @@
|
||||
local SettingsCtrl = class("SettingsCtrl", BaseCtrl)
|
||||
local UIGameSystemSetup = CS.UIGameSystemSetup
|
||||
local ClientManager = CS.ClientManager.Instance
|
||||
local InputManager = CS.InputManager
|
||||
SettingsCtrl._mapNodeConfig = {
|
||||
txtWeekDay = {sComponentName = "TMP_Text"},
|
||||
txtTime1 = {sComponentName = "TMP_Text"},
|
||||
txtTime2 = {sComponentName = "TMP_Text"},
|
||||
aniRoot = {
|
||||
sNodeName = "----Content----",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
btnClose = {
|
||||
nCount = 2,
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
Page1 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsAcountCtrl"
|
||||
},
|
||||
Page2 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsGraphicCtrl"
|
||||
},
|
||||
Page3 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsSoundCtrl"
|
||||
},
|
||||
Page4 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsBattleCtrl"
|
||||
},
|
||||
Page5 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsLanguageCtrl"
|
||||
},
|
||||
Page6 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsNotificationCtrl"
|
||||
},
|
||||
Page7 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsKeyboardCtrl"
|
||||
},
|
||||
Page8 = {
|
||||
sCtrlName = "Game.UI.Settings.SettingsGamepadCtrl"
|
||||
},
|
||||
cgPage = {
|
||||
nCount = 8,
|
||||
sNodeName = "Page",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
trPage = {
|
||||
nCount = 8,
|
||||
sNodeName = "Page",
|
||||
sComponentName = "Transform"
|
||||
},
|
||||
btnPage = {
|
||||
nCount = 8,
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Page"
|
||||
},
|
||||
imgOn = {nCount = 8},
|
||||
aniTab = {sNodeName = "---Tab---", sComponentName = "Animator"},
|
||||
scTab = {
|
||||
sNodeName = "scrollTab",
|
||||
sComponentName = "UIScrollToClick"
|
||||
},
|
||||
blur = {
|
||||
sNodeName = "t_fullscreen_blur_blue"
|
||||
},
|
||||
aniBlur = {
|
||||
sNodeName = "t_fullscreen_blur_blue",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
btnBlur = {
|
||||
sNodeName = "snapshot",
|
||||
sComponentName = "Button",
|
||||
callback = "OnBtnClick_ClosePop"
|
||||
},
|
||||
Language = {
|
||||
sNodeName = "---Language---",
|
||||
sCtrlName = "Game.UI.Settings.SettingsLangPkgCtrl"
|
||||
},
|
||||
Resolution = {
|
||||
sNodeName = "---Resolution---",
|
||||
sCtrlName = "Game.UI.Settings.SettingsResolutionCtrl"
|
||||
},
|
||||
GemPop = {
|
||||
sNodeName = "---Gem---",
|
||||
sCtrlName = "Game.UI.Settings.SettingsGemCtrl"
|
||||
},
|
||||
LogBtn = {sComponentName = "Button"},
|
||||
ShowBtn = {sComponentName = "Button"}
|
||||
}
|
||||
SettingsCtrl._mapEventConfig = {
|
||||
SettingsLanguage = "OnEvent_Language",
|
||||
SettingsResolution = "OnEvent_Resolution",
|
||||
SettingsClosePop = "OnBtnClick_ClosePop",
|
||||
Setting_GemDetail = "OnEvent_Stone"
|
||||
}
|
||||
function SettingsCtrl:InitPageState()
|
||||
self.pageIndex = 1
|
||||
for i = 1, 8 do
|
||||
if i == 1 then
|
||||
NovaAPI.SetCanvasGroupAlpha(self._mapNode.cgPage[i], 1)
|
||||
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.cgPage[i], true)
|
||||
self._mapNode.imgOn[i]:SetActive(true)
|
||||
self._mapNode["Page" .. i]:Init()
|
||||
else
|
||||
NovaAPI.SetCanvasGroupAlpha(self._mapNode.cgPage[i], 0)
|
||||
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.cgPage[i], false)
|
||||
self._mapNode.imgOn[i]:SetActive(false)
|
||||
end
|
||||
end
|
||||
local bMobile = NovaAPI.IsMobilePlatform()
|
||||
self._mapNode.btnPage[7].gameObject:SetActive(not bMobile)
|
||||
if bMobile then
|
||||
local bAble = false
|
||||
self._mapNode.btnPage[8].gameObject:SetActive(bAble)
|
||||
self._mapNode.btnPage[5].gameObject.transform:Find("AnimRoot/line").gameObject:SetActive(bAble)
|
||||
else
|
||||
self._mapNode.btnPage[8].gameObject:SetActive(true)
|
||||
self._mapNode.btnPage[5].gameObject.transform:Find("AnimRoot/line").gameObject:SetActive(true)
|
||||
end
|
||||
self._mapNode.txtTime1.gameObject:SetActive(false)
|
||||
self._mapNode.txtTime2.gameObject:SetActive(false)
|
||||
self._mapNode.txtWeekDay.gameObject:SetActive(false)
|
||||
end
|
||||
function SettingsCtrl:RefreshTime()
|
||||
local curTime = ClientManager.serverTimeStamp
|
||||
NovaAPI.SetTMPText(self._mapNode.txtTime1, (os.date("%I:%M", curTime)))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtTime2, (os.date("%p", curTime)))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtWeekDay, ConfigTable.GetUIText("Settings_Weekday" .. tonumber(os.date("%w")) + 1))
|
||||
end
|
||||
function SettingsCtrl:Awake()
|
||||
end
|
||||
function SettingsCtrl:OnEnable()
|
||||
self._mapNode.aniRoot:Play("t_window_04_t_in")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
||||
self:InitPageState()
|
||||
self._mapNode.ShowBtn.gameObject:SetActive(false)
|
||||
self._mapNode.LogBtn.gameObject:SetActive(false)
|
||||
EventManager.Hit("PlayerLog", self._mapNode.LogBtn)
|
||||
EventManager.Hit("ShowSettingsG", self._mapNode.ShowBtn)
|
||||
end
|
||||
function SettingsCtrl:OnDisable()
|
||||
local nUID = PlayerData.Base:GetPlayerId()
|
||||
CS.InputManager.Instance:SaveBindingOverrides(nUID)
|
||||
end
|
||||
function SettingsCtrl:OnDestroy()
|
||||
end
|
||||
function SettingsCtrl:OnBtnClick_Close()
|
||||
self._mapNode.aniRoot:Play("t_window_04_t_out")
|
||||
self:AddTimer(1, 0.2, function()
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.Settings)
|
||||
end, true, true, true)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
||||
end
|
||||
function SettingsCtrl:OnBtnClick_Page(btn, index)
|
||||
if self.pageIndex == index then
|
||||
return
|
||||
end
|
||||
NovaAPI.SetCanvasGroupAlpha(self._mapNode.cgPage[self.pageIndex], 0)
|
||||
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.cgPage[self.pageIndex], false)
|
||||
self._mapNode.imgOn[self.pageIndex]:SetActive(false)
|
||||
self._mapNode["Page" .. self.pageIndex]:Quit()
|
||||
NovaAPI.SetCanvasGroupAlpha(self._mapNode.cgPage[index], 1)
|
||||
NovaAPI.SetCanvasGroupBlocksRaycasts(self._mapNode.cgPage[index], true)
|
||||
self._mapNode.imgOn[index]:SetActive(true)
|
||||
self._mapNode["Page" .. index]:Init()
|
||||
self._mapNode.aniTab:Play("Tab_btnPage" .. index)
|
||||
self.pageIndex = index
|
||||
self._mapNode.scTab:ScrollToClick(btn.gameObject, 0.1)
|
||||
local scrollRect = self._mapNode.trPage[index]:Find("sv"):GetComponent("ScrollRect")
|
||||
NovaAPI.SetVerticalNormalizedPosition(scrollRect, 1)
|
||||
end
|
||||
function SettingsCtrl:OnBtnClick_ClosePop()
|
||||
if self.ctrlPop then
|
||||
self.ctrlPop:PlayOutAni()
|
||||
self.ctrlPop = nil
|
||||
end
|
||||
self._mapNode.aniBlur:SetTrigger("tOut")
|
||||
self:AddTimer(1, 0.2, function()
|
||||
self._mapNode.blur:SetActive(false)
|
||||
end, true, true, true)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
||||
end
|
||||
function SettingsCtrl:OnEvent_Language(tbVoAvailable, tbDownload)
|
||||
self.ctrlPop = self._mapNode.Language
|
||||
self._mapNode.Language:Open(tbVoAvailable, tbDownload)
|
||||
self._mapNode.blur:SetActive(true)
|
||||
end
|
||||
function SettingsCtrl:OnEvent_Resolution(nResolution, tbResolution)
|
||||
self.ctrlPop = self._mapNode.Resolution
|
||||
self._mapNode.Resolution:Open(nResolution, tbResolution)
|
||||
self._mapNode.blur:SetActive(true)
|
||||
end
|
||||
function SettingsCtrl:OnEvent_Stone()
|
||||
self.ctrlPop = self._mapNode.GemPop
|
||||
self._mapNode.GemPop:Open()
|
||||
self._mapNode.blur:SetActive(true)
|
||||
end
|
||||
function SettingsCtrl:OnEvent_DeviceChange(changeType)
|
||||
if not NovaAPI.IsMobilePlatform() then
|
||||
return
|
||||
end
|
||||
if changeType.value__ == 0 then
|
||||
local nType = InputManager.Instance:CheckGamepadType()
|
||||
if nType == InputManager.GamepadType.PS or nType == InputManager.GamepadType.XBox then
|
||||
self._mapNode.btnPage[8].gameObject:SetActive(true)
|
||||
self._mapNode.btnPage[5].gameObject.transform:Find("AnimRoot/line").gameObject:SetActive(true)
|
||||
end
|
||||
elseif changeType.value__ == 1 then
|
||||
self._mapNode.btnPage[8].gameObject:SetActive(false)
|
||||
self._mapNode.btnPage[5].gameObject.transform:Find("AnimRoot/line").gameObject:SetActive(false)
|
||||
if self.pageIndex == 8 then
|
||||
self:OnBtnClick_Page(self._mapNode.btnPage[1], 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
return SettingsCtrl
|
||||
Reference in New Issue
Block a user