diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua index bf4ed0de..0f1efeb8 100644 --- a/lua/app/global/global_const.lua +++ b/lua/app/global/global_const.lua @@ -177,6 +177,7 @@ GConst.ATLAS_PATH = { ICON_SKILL_ROGUE = "assets/arts/atlas/icon/skill_rogue.asset", ICON_BUFF = "assets/arts/atlas/icon/buff.asset", BOUNTY = "assets/arts/atlas/ui/bounty.asset", + UI_SETTING = "assets/arts/atlas/ui/setting.asset", } GConst.TOUCH_EVENT = { diff --git a/lua/app/ui/game_setting/cell.meta b/lua/app/ui/game_setting/cell.meta new file mode 100644 index 00000000..930edd3a --- /dev/null +++ b/lua/app/ui/game_setting/cell.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1db3a47fe64cce642a9453b2eac43c74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/lua/app/ui/game_setting/cell/language_cell.lua b/lua/app/ui/game_setting/cell/language_cell.lua new file mode 100644 index 00000000..fd5f16ef --- /dev/null +++ b/lua/app/ui/game_setting/cell/language_cell.lua @@ -0,0 +1,17 @@ +local LanguageCell = class("LanguageCell", BaseCell) + +function LanguageCell:refresh(language, selected) + local uiMap = self:getUIMap() + if selected then + uiMap["language_cell.bg"]:setSprite(GConst.ATLAS_PATH.COMMON, "common_board_4") + else + uiMap["language_cell.bg"]:setSprite(GConst.ATLAS_PATH.COMMON, "common_board_3") + end + uiMap["language_cell.name_bg"]:setSprite(GConst.ATLAS_PATH.UI_SETTING, "language_" .. language) +end + +function LanguageCell:addClickListener(func) + self:getBaseObject():addClickListener(func) +end + +return LanguageCell \ No newline at end of file diff --git a/lua/app/ui/game_setting/cell/language_cell.lua.meta b/lua/app/ui/game_setting/cell/language_cell.lua.meta new file mode 100644 index 00000000..e6ca34d7 --- /dev/null +++ b/lua/app/ui/game_setting/cell/language_cell.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0aa5175460330d44383c4069d901229a +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/ui/game_setting/game_setting_ui.lua b/lua/app/ui/game_setting/game_setting_ui.lua index c1802443..97a15638 100644 --- a/lua/app/ui/game_setting/game_setting_ui.lua +++ b/lua/app/ui/game_setting/game_setting_ui.lua @@ -80,8 +80,9 @@ function GameSettingUI:_addListeners() ModuleManager.GameSettingManager:showLanguageUI() end) - self.uiMap["game_setting_ui.bg.player_id_btn"]:addClickListener(function() - -- GFunc.copyStr(objectId) + self.uiMap["game_setting_ui.bg.player_bg.player_id_btn"]:addClickListener(function() + local acountId = DataManager.PlayerData:getAcountId() or GConst.EMPTY_STRING + GFunc.copyStr(acountId) end) self.uiMap["game_setting_ui.bg.tx_1"]:addClickListener(function() diff --git a/lua/app/ui/game_setting/language_ui.lua b/lua/app/ui/game_setting/language_ui.lua new file mode 100644 index 00000000..a7f6e5ce --- /dev/null +++ b/lua/app/ui/game_setting/language_ui.lua @@ -0,0 +1,67 @@ +local LanguageUI = class("LanguageUI", BaseUI) + +local LANGUAGE_CELL = "app/ui/game_setting/cell/language_cell" + +function LanguageUI:isFullScreen() + return false +end + +function LanguageUI:ctor() + self.languageList = I18N:getSupportLanguageList() +end + +function LanguageUI:getPrefabPath() + return "assets/prefabs/ui/setting/language_ui.prefab" +end + +function LanguageUI:onLoadRootComplete() + self.uiMap = self.root:genAllChildren() + + self:_display() + self:_addListeners() + + self:refreshScrollRect() +end + +function LanguageUI:_display() + local titleTx = self.uiMap["language_ui.bg.title_tx"] + titleTx:setText(I18N:getGlobalText(I18N.GlobalConst.LANGUAGE_DESC)) +end + +function LanguageUI:_addListeners() + local closeBtn = self.uiMap["language_ui.bg.close_btn"] + closeBtn:addClickListener(function() + self:closeUI() + end) +end + +function LanguageUI:refreshScrollRect() + local scroll = self.uiMap["language_ui.bg.scrollrect"] + self.scrollRect = scroll:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE) + self.scrollRect:addInitCallback(function() + return LANGUAGE_CELL + end) + self.scrollRect:addRefreshCallback(function(index, cell) + local language = self.languageList[index] + cell:refresh(language) + cell:addClickListener(function() + self:closeUI() + local changeStatus = I18N:setLanguage(language) + if changeStatus then + local FontManager = require "app/common/font_manager" + FontManager:changeLanguage(I18N:getCurLanguage() or GConst.LANGUAGE.ENGLISH, function() + EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.I18N_CHANGE_LANGUAGE) + UIManager:closeAllUI() + UIManager:hideToastAndMessageBox() + UIManager:clearUIPrefabCache() + UIManager:refreshOnChangeLanguage() + ModuleManager.MaincityManager:showMainCityUI() + end) + end + end) + end) + self.scrollRect:clearCells() + self.scrollRect:refillCells(#self.languageList) +end + +return LanguageUI \ No newline at end of file diff --git a/lua/app/ui/game_setting/language_ui.lua.meta b/lua/app/ui/game_setting/language_ui.lua.meta new file mode 100644 index 00000000..c315cccb --- /dev/null +++ b/lua/app/ui/game_setting/language_ui.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 62a3daa3b0d6b444a8d0d42bb69d8dea +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}