local SettingView = require("Game.View.SettingView") local TableBG = require("Game.Data.TableBG") local MJSettingViewNew = { -- 修改牌 onUpdataCardCallback = nil } local M = MJSettingViewNew -- show_dialect是否显示'切换方言'选项 function MJSettingViewNew.new(blur_view, show_dialect) setmetatable(SettingView, {__index = BaseWindow}) setmetatable(M, {__index = SettingView}) local self = setmetatable({}, {__index = M}) self.class = "MJSettingViewNew" self._currenIndex = 0 self._blur_view = blur_view self.onCallback = event("onCallback", true) self.onChangeCardCallback = event("onCallback",true) self.onChangeLanguageCallback = event("onCallback", true) self.stateIndex = 0 self.cd_time = 0 self._btn_dismiss_room_enable = true self._full = true self._anim_pop = 2 self._close_zone = true self._show_dialect = show_dialect self:init("ui://Main_Majiang/SettingWindow2") return self end function M:init(url) SettingView.init(self, url) self._view:GetChild("btn_close22").onClick:Set(function( ... ) local bg_id = self._view:GetController("bg").selectedIndex + 1 if self._bg ~= bg_id then self._bg = bg_id TableBG.SaveTableBG(self._game_id, self._bg) end self:Destroy() end) self._view:GetChild("btn_close").onClick:Set(function( ... ) local bg_id = self._view:GetController("bg").selectedIndex + 1 if self._bg ~= bg_id then self._bg = bg_id TableBG.SaveTableBG(self._game_id, self._bg) end self:Destroy() end) if self._show_dialect == true then self._view:GetController("show_dialect").selectedIndex = 1 local ctr_language = self._view:GetController("language") ctr_language.selectedIndex = self:GetLanguage() ctr_language.onChanged:Set(function() self:SaveLanguage(ctr_language.selectedIndex) if self.onChangeLanguageCallback then self:onChangeLanguageCallback(ctr_language.selectedIndex) end end) end end --赋值bg_config function M:GetBGConfig() return TableBG.GetBGConfig() end function M:Change3d(mode,oldCardType) local lst_bg = self._view:GetChild("lst_bg") if mode == 2 then local bg_id = self._view:GetController("bg").selectedIndex + 1 if self._bg ~= bg_id then self._bg = bg_id TableBG.SaveTableBG(self._game_id, self._bg) end for i = 1, lst_bg.numChildren do local item = lst_bg:GetChildAt(i - 1) if item.data.id == 4 then item.onClick:Call(); break end end else if oldCardType == 2 and DataManager.CurrenRoom.card_type ~= 2 then for i = 1, lst_bg.numChildren do local item = lst_bg:GetChildAt(i - 1) if item.data.id == self._default_bg then item.onClick:Call(); break end end end local bg_id = self._view:GetController("bg").selectedIndex + 1 if self._bg ~= bg_id and bg_id ~= 4 then self._bg = bg_id TableBG.SaveTableBG(self._game_id, self._bg) end bg_id = TableBG.GetTableBG(self._game_id) if bg_id > 0 then for i = 1, lst_bg.numChildren do local item = lst_bg:GetChildAt(i - 1) if item.data.id == bg_id then item.onClick:Call(); break end end end end end --赋值bg_config function M:GetBGConfig() return TableBG.GetBGConfig() end --获得背景方法 function M:GetBgByGameId(game_id) return TableBG.GetTableBG(game_id) end --获得当前语言 function M:GetLanguage() return PlayerPrefs.GetInt("Languauge" .. DataManager.CurrenRoom.game_id) end --保存选择的语言 function M:SaveLanguage(languauge) PlayerPrefs.SetInt("Languauge" .. DataManager.CurrenRoom.game_id, languauge) end function M:Show() self:UpdateIndex() SettingView.Show(self) local ctr_card = self._view:GetController("card") ctr_card.selectedIndex=0 local game_id = tostring(DataManager.CurrenRoom.game_id) local ctr_cardIndex=0 local ct_data = nil local json_data = Utils.LoadLocalFile("CardTypeData") if json_data then ct_data = json.decode(json_data) if ct_data[game_id] then ctr_cardIndex=ct_data[game_id] else ctr_cardIndex=0 end else ctr_cardIndex=0 end ctr_card.selectedIndex=ctr_cardIndex local list_cardtype = DataManager.CardTypeList if DataManager.CurrenRoom then list_cardtype[game_id] = ctr_cardIndex Utils.SaveLocalFile("CardTypeData",json.encode(list_cardtype)) end ctr_card.onChanged:Set(function () if self.onChangeCardCallback then local oldCardType = DataManager.CurrenRoom.card_type DataManager.CurrenRoom.card_type = ctr_card.selectedIndex self.onChangeCardCallback() local cardtype = ctr_card.selectedIndex local list_cardtype = DataManager.CardTypeList if DataManager.CurrenRoom then local game_id = tostring(DataManager.CurrenRoom.game_id) if not list_cardtype[game_id] or list_cardtype[game_id] ~= cardtype then list_cardtype[game_id] = cardtype Utils.SaveLocalFile("CardTypeData",json.encode(list_cardtype)) end end self:Change3d(ctr_card.selectedIndex,oldCardType) end end) local ctr_size = self._view:GetController("size") local filename = 'mjsize' .. DataManager.SelfUser.account_id local json_data = Utils.LoadLocalFile(filename) if json_data then local _data = json.decode(json_data) if _data and _data.size then ctr_size.selectedIndex=_data.size end else ctr_size.selectedIndex=1 end ctr_size.onChanged:Set(function () local _gamectr = ControllerManager.GetController(GameController) if _gamectr then DispatchEvent(_gamectr._dispatcher,GameEvent.MJModifySzie,ctr_size.selectedIndex) end end) end function M:Change3DMode() DataManager.CurrenRoom.card_type = 2 local list_cardtype = DataManager.CardTypeList if DataManager.CurrenRoom then local game_id = tostring(DataManager.CurrenRoom.game_id) if not list_cardtype[game_id] or list_cardtype[game_id] ~= cardtype then list_cardtype[game_id] = cardtype Utils.SaveLocalFile("CardTypeData",json.encode(list_cardtype)) end end TableBG.SaveTableBG(DataManager.CurrenRoom.game_id, 4) end function M:UpdateIndex() local room = DataManager.CurrenRoom local ctr_card = self._view:GetController("card") ctr_card.selectedIndex = room.card_type end return M