5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
169 lines
5.2 KiB
Lua
169 lines
5.2 KiB
Lua
local SettingsLangPkgCtrl = class("SettingsLangPkgCtrl", BaseCtrl)
|
|
SettingsLangPkgCtrl._mapNodeConfig = {
|
|
txtWindowTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_Language_Package"
|
|
},
|
|
btnClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Cancel"
|
|
},
|
|
btnConfirm1 = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Confirm"
|
|
},
|
|
btnCancel = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Cancel"
|
|
},
|
|
txtBtnConfirm = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_Btn_Download"
|
|
},
|
|
txtBtnCancel = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_Btn_Back"
|
|
},
|
|
Option = {nCount = 2},
|
|
txtOptionTitle = {nCount = 2, sComponentName = "TMP_Text"},
|
|
txtState = {nCount = 2, sComponentName = "TMP_Text"},
|
|
btnDownload = {
|
|
nCount = 2,
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Download"
|
|
},
|
|
Checkmark = {nCount = 2, sComponentName = "Animator"},
|
|
txtBackTip = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Settings_LangPkg_BackTip"
|
|
},
|
|
txtVoJpTip = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "SwitchToJPLanTips2"
|
|
}
|
|
}
|
|
SettingsLangPkgCtrl._mapEventConfig = {}
|
|
function SettingsLangPkgCtrl:Open(tbVoAvailable, tbDownload)
|
|
self.tbVoAvailable = tbVoAvailable
|
|
self.tbDownload = tbDownload
|
|
self.tbEnableState = {}
|
|
self:Refresh()
|
|
self:PlayInAni()
|
|
end
|
|
function SettingsLangPkgCtrl:Refresh()
|
|
local nCount = #self.tbVoAvailable
|
|
for i = 1, 2 do
|
|
if i > nCount then
|
|
self._mapNode.Option[i]:SetActive(false)
|
|
else
|
|
self._mapNode.Option[i]:SetActive(true)
|
|
do
|
|
local mapDownloadData = self.tbDownload[self.tbVoAvailable[i]]
|
|
if mapDownloadData.nTotalSize == 0 then
|
|
NovaAPI.SetTMPText(self._mapNode.txtOptionTitle[i], self.tbLang[self.tbVoAvailable[i]])
|
|
else
|
|
local nSize = math.ceil(mapDownloadData.nTotalSize / 1048576)
|
|
NovaAPI.SetTMPText(self._mapNode.txtOptionTitle[i], self.tbLang[self.tbVoAvailable[i]] .. " (" .. nSize .. "MB)")
|
|
end
|
|
local bDownload = mapDownloadData.bDownloaded
|
|
self._mapNode.btnDownload[i].gameObject:SetActive(not bDownload)
|
|
self._mapNode.txtState[i].gameObject:SetActive(bDownload)
|
|
if bDownload then
|
|
NovaAPI.SetTMPText(self._mapNode.txtState[i], ConfigTable.GetUIText("Settings_LangPkg_Downloaded"))
|
|
else
|
|
self.tbEnableState[self.tbVoAvailable[i]] = false
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self._mapNode.Checkmark[i]:Play("checkmark_out", -1, 1)
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
function SettingsLangPkgCtrl:PlayInAni()
|
|
self.gameObject:SetActive(true)
|
|
self.ani:Play("t_window_04_t_in")
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
|
end
|
|
function SettingsLangPkgCtrl:PlayOutAni()
|
|
self.ani:Play("t_window_04_t_out")
|
|
self:AddTimer(1, 0.2, "Close", true, true, true)
|
|
end
|
|
function SettingsLangPkgCtrl:Close()
|
|
self.gameObject:SetActive(false)
|
|
end
|
|
function SettingsLangPkgCtrl:Awake()
|
|
self.ani = self.gameObject.transform:GetComponent("Animator")
|
|
self.tbLang = {}
|
|
self.tbLang[AllEnum.Language.CN] = ConfigTable.GetUIText("Settings_Language_Voice_Chinese")
|
|
self.tbLang[AllEnum.Language.JP] = ConfigTable.GetUIText("Settings_Language_Voice_Japanese")
|
|
self.tbLang[AllEnum.Language.EN] = ConfigTable.GetUIText("Settings_Language_Voice_English")
|
|
self.tbLang[AllEnum.Language.KR] = ConfigTable.GetUIText("Settings_Language_Voice_Korean")
|
|
self.tbLang[AllEnum.Language.TW] = ConfigTable.GetUIText("Settings_Language_Voice_TraditionalChinese")
|
|
end
|
|
function SettingsLangPkgCtrl:OnEnable()
|
|
end
|
|
function SettingsLangPkgCtrl:OnDisable()
|
|
end
|
|
function SettingsLangPkgCtrl:OnDestroy()
|
|
end
|
|
function SettingsLangPkgCtrl:OnBtnClick_Cancel(btn)
|
|
EventManager.Hit("SettingsClosePop")
|
|
end
|
|
function SettingsLangPkgCtrl:OnBtnClick_Confirm(btn)
|
|
if next(self.tbEnableState) == nil then
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Settings_Download_None"))
|
|
return
|
|
end
|
|
local bAllfalse = true
|
|
for _, v in pairs(self.tbEnableState) do
|
|
if v == true then
|
|
bAllfalse = false
|
|
break
|
|
end
|
|
end
|
|
if bAllfalse then
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Settings_Download_NeedSelect"))
|
|
return
|
|
end
|
|
local msg = {
|
|
nType = AllEnum.MessageBox.Confirm,
|
|
sContent = ConfigTable.GetUIText("Settings_LangPkg_BackConfirm"),
|
|
callbackConfirm = function()
|
|
for language, bEnable in pairs(self.tbEnableState) do
|
|
if bEnable then
|
|
NovaAPI.Enable_VoLanguage(language)
|
|
local tab = {}
|
|
table.insert(tab, {
|
|
"role_id",
|
|
tostring(PlayerData.Base._nPlayerId)
|
|
})
|
|
table.insert(tab, {
|
|
"set",
|
|
"language_manage"
|
|
})
|
|
table.insert(tab, {
|
|
"arg",
|
|
tostring(language)
|
|
})
|
|
NovaAPI.UserEventUpload("setting_choice", tab)
|
|
end
|
|
end
|
|
PanelManager.OnConfirmBackToLogIn()
|
|
end,
|
|
bBlur = false
|
|
}
|
|
EventManager.Hit(EventId.OpenMessageBox, msg)
|
|
end
|
|
function SettingsLangPkgCtrl:OnBtnClick_Download(btn, nIndex)
|
|
self.tbEnableState[self.tbVoAvailable[nIndex]] = not self.tbEnableState[self.tbVoAvailable[nIndex]]
|
|
if self.tbEnableState[self.tbVoAvailable[nIndex]] then
|
|
self._mapNode.Checkmark[nIndex]:SetTrigger("PlayCheckmarkShow")
|
|
else
|
|
self._mapNode.Checkmark[nIndex]:SetTrigger("PlayCheckmarkHide")
|
|
end
|
|
end
|
|
return SettingsLangPkgCtrl
|