Files
StellaSora_DataLua/lua/game/ui/potentialpreselection/preselectionrenamectrl.lua
T
SL1900 e0549005e1 Update - 1.9.0.103
EN: 1.9.0.103
CN: 1.9.0.104
JP: 1.9.0.106
KR: 1.9.0.108
2026-04-18 00:15:00 +09:00

138 lines
3.8 KiB
Lua

local PreselectionRenameCtrl = class("PreselectionRenameCtrl", BaseCtrl)
PreselectionRenameCtrl._mapNodeConfig = {
blur = {
sNodeName = "t_fullscreen_blur_blue"
},
aniBlur = {
sNodeName = "t_fullscreen_blur_blue",
sComponentName = "Animator"
},
aniWindow = {
sNodeName = "---Rename---",
sComponentName = "Animator"
},
goWindow = {
sNodeName = "---Rename---"
},
txtWindowTitle = {
sComponentName = "TMP_Text",
sLanguageId = "Potential_Preselection_Change_Name"
},
txtOldName = {
sComponentName = "TMP_Text",
sLanguageId = "Potential_Preselection_Cur_Name"
},
txtNameDesc = {
sComponentName = "TMP_Text",
sLanguageId = "Potential_Preselection_Name_Input"
},
txtCurName = {sComponentName = "TMP_Text"},
inputRename = {
sComponentName = "TMP_InputField"
},
btnBlur = {
sNodeName = "snapshot",
sComponentName = "Button",
callback = "OnBtnClick_Cancel"
},
btnClose = {
sComponentName = "UIButton",
callback = "OnBtnClick_Cancel"
},
btnCancel = {
sComponentName = "UIButton",
callback = "OnBtnClick_Cancel"
},
btnConfirm1 = {
sComponentName = "UIButton",
callback = "OnBtnClick_Confirm"
},
txtBtnConfirm = {
sComponentName = "TMP_Text",
sLanguageId = "Friend_Btn_Confirm"
},
txtBtnCancel = {
sComponentName = "TMP_Text",
sLanguageId = "Friend_Btn_Cancel"
}
}
PreselectionRenameCtrl._mapEventConfig = {}
function PreselectionRenameCtrl:Open()
self:Refresh()
self:PlayInAni()
end
function PreselectionRenameCtrl:Refresh()
local bInit = NovaAPI.IsDirtyWordsInit()
if not bInit then
NovaAPI.InitDirtyWords()
end
NovaAPI.SetTMPInputFieldText(self._mapNode.inputRename, "")
if self.sCurName ~= nil and self.sCurName ~= "" then
NovaAPI.SetTMPText(self._mapNode.txtCurName, self.sCurName)
elseif self.mapPreselection.sName == "" or self.mapPreselection.sName == nil then
NovaAPI.SetTMPText(self._mapNode.txtCurName, ConfigTable.GetUIText("RoguelikeBuild_EmptyBuildName"))
else
NovaAPI.SetTMPText(self._mapNode.txtCurName, self.mapPreselection.sName)
end
end
function PreselectionRenameCtrl:PlayInAni()
self._mapNode.goWindow:SetActive(true)
self._mapNode.blur:SetActive(true)
self._mapNode.aniWindow:Play("t_window_04_t_in")
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
end
function PreselectionRenameCtrl:PlayOutAni()
self._mapNode.aniWindow:Play("t_window_04_t_out")
self._mapNode.aniBlur:SetTrigger("tOut")
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
self:AddTimer(1, 0.2, "Close", true, true, true)
end
function PreselectionRenameCtrl:Close()
EventManager.Hit(EventId.ClosePanel, PanelId.PreselectionRename)
end
function PreselectionRenameCtrl:Awake()
local tbParam = self:GetPanelParam()
if type(tbParam) == "table" then
self.mapPreselection = tbParam[1]
self.callback = tbParam[2]
self.bSkip = tbParam[3]
self.sCurName = tbParam[4]
end
end
function PreselectionRenameCtrl:OnEnable()
self:Open()
end
function PreselectionRenameCtrl:OnDisable()
end
function PreselectionRenameCtrl:OnDestroy()
end
function PreselectionRenameCtrl:OnBtnClick_Cancel(btn)
self:PlayOutAni()
end
function PreselectionRenameCtrl:OnBtnClick_Confirm(btn)
local sNewName = NovaAPI.GetTMPInputFieldText(self._mapNode.inputRename)
if sNewName == "" then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("BUILD_05"))
return
end
local bInit = NovaAPI.IsDirtyWordsInit()
if not bInit then
NovaAPI.InitDirtyWords()
end
if NovaAPI.IsDirtyString(sNewName) then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("PLAYER_01"))
return
end
if self.bSkip then
self:PlayOutAni()
self.callback(sNewName)
else
local callback = function()
self:PlayOutAni()
self.callback(sNewName)
end
PlayerData.PotentialPreselection:SendChangePreselectionName(self.mapPreselection.nId, sNewName, callback)
end
end
return PreselectionRenameCtrl