local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJFunction=MJFramework.MJImport("mj.luaScript.MJFunction") -- 房间设置界面 local MJRoomSettingView = class("MJRoomSettingView", cc.UIView) function MJRoomSettingView:ctor() MJRoomSettingView.super.ctor(self); end function MJRoomSettingView:onEnter() MJRoomSettingView.super.onEnter(self) self:loadUI() self:initButton() end function MJRoomSettingView:loadUI() local ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_set.ui") self.ui = ui self:addChild(ui) end --按钮事件 function MJRoomSettingView:initButton() -- 关闭 self.ui.Items.Button_Close:registerClick(handler(self , self.onClickClose)) --音乐 self.ui.Items.Layout_Music:registerClick(handler(self , self.onClickMusic)) --音效 self.ui.Items.Layout_Effect:registerClick(handler(self , self.onClickEffect)) --道具 self.ui.Items.Layout_Prop:registerClick(handler(self , self.onClickProp)) --语音 self.ui.Items.Layout_Voice:registerClick(handler(self , self.onClickVoice)) self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided()) self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided()) -- self.languageRadioManager = import("luaScript.Tools.RadioManager"):new() self.viewTypeRadioManager = import("luaScript.Tools.RadioManager"):new() self.bg3dRadioManager = import("luaScript.Tools.RadioManager"):new() self.bg2dRadioManager = import("luaScript.Tools.RadioManager"):new() self.mj2dTypeRadioManager = import("luaScript.Tools.RadioManager"):new() --视图类型 self.viewTypeRadioManager:addItem(self.ui.Items.CheckBox_3D, MJDefine.DesktopType.ThreeD) self.viewTypeRadioManager:addItem(self.ui.Items.CheckBox_2D, MJDefine.DesktopType.TwoD) self.viewTypeRadioManager:setDefault(app.systemSetting.info.viewType) self.viewTypeRadioManager:setCallback(function (value) app.systemSetting.info.viewType = value app.systemSetting:save() showTooltip("设置将在下一局生效!") self:updateBGRaidoEnable() -- app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType}) end) --3D背景 self.bg3dRadioManager:addItem(self.ui.Items.CheckBox_3D_1, 1) self.bg3dRadioManager:addItem(self.ui.Items.CheckBox_3D_2, 2) self.bg3dRadioManager:addItem(self.ui.Items.CheckBox_3D_3, 3) local mj_desktop_3d_bg = tonumber(loadUserInfo("mj_desktop_3d_bg")) or 1 self.bg3dRadioManager:setDefault(mj_desktop_3d_bg) self:updateBG(MJDefine.DesktopType.ThreeD,mj_desktop_3d_bg) self.bg3dRadioManager:setCallback(function (value) self:updateBG(MJDefine.DesktopType.ThreeD,value) saveUserInfo("mj_desktop_3d_bg", value) if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewBG}) else showTooltip("当前选项不是透视场景!") end end) --2D视图麻将牌类型 self.mj2dTypeRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ, MJDefine.DesktopType.TwoD) self.mj2dTypeRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ_Gold, MJDefine.DesktopType.TwoDGold) local mj_desktop_2d_mjType = loadUserInfo("mj_desktop_2d_mjType") or MJDefine.DesktopType.TwoD self.mj2dTypeRadioManager:setDefault(mj_desktop_2d_mjType) self.mj2dTypeRadioManager:setCallback(function (value) saveUserInfo("mj_desktop_2d_mjType", value) local mj_desktop_2d_bg = tonumber(loadUserInfo("mj_desktop_2d_bg")) or 1 self:updateBG(MJDefine.DesktopType.TwoD,mj_desktop_2d_bg) if app.systemSetting.info.viewType == MJDefine.DesktopType.TwoD then showTooltip("设置将在下一局生效!") -- app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType}) else showTooltip("当前选项不是平面场景!") end end) --2D背景 self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_1, 1) self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_2, 2) self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_3, 3) self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_4, 4) local mj_desktop_2d_bg = tonumber(loadUserInfo("mj_desktop_2d_bg")) or 1 self.bg2dRadioManager:setDefault(mj_desktop_2d_bg) self:updateBG(MJDefine.DesktopType.TwoD,mj_desktop_2d_bg) self.bg2dRadioManager:setCallback(function (value) self:updateBG(MJDefine.DesktopType.TwoD,value) saveUserInfo("mj_desktop_2d_bg", value) if app.systemSetting.info.viewType == MJDefine.DesktopType.TwoD then app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewBG}) else showTooltip("当前选项不是平面场景!") end end) self:updateBGRaidoEnable() self:initLanguage() self:updateButton("Music",app.systemSetting.info.music) self:updateButton("Effect",app.systemSetting.info.sound) local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1 local propEnable = tonumber(loadUserInfo("propEnable")) or 1 self:updateButton("Voice",voiceEnable==1) self:updateButton("Prop",propEnable==1) end --道具 function MJRoomSettingView:onClickProp() playBtnEffect() local propEnable = tonumber(loadUserInfo("propEnable")) or 1 if propEnable==1 then propEnable = 0 else propEnable =1 end saveUserInfo("propEnable",propEnable) self:updateButton("Prop",propEnable==1) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end --语音 function MJRoomSettingView:onClickVoice() playBtnEffect() local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1 if voiceEnable==1 then voiceEnable = 0 else voiceEnable =1 end saveUserInfo("voiceEnable",voiceEnable) self:updateButton("Voice",voiceEnable==1) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end function MJRoomSettingView:updateBGRaidoEnable() if app.systemSetting.info.viewType == MJDefine.DesktopType.TwoD then self.bg2dRadioManager:setEnabled(true) self.bg3dRadioManager:setEnabled(false) self.mj2dTypeRadioManager:setEnabled(true) else self.bg2dRadioManager:setEnabled(false) self.bg3dRadioManager:setEnabled(true) self.mj2dTypeRadioManager:setEnabled(false) end end function MJRoomSettingView:initLanguage() --方言 self.ui.Items.Layout_Language:registerClick(handler(self , self.onClickLanguage)) --更新默认显示 1为普通 2为方言 if MJDefine.isLanguage then local cacheLan = "mj_language"..(MJDefine.GameID or app.gameId) local language = tonumber(loadUserInfo(cacheLan)) or 1 saveUserInfo(cacheLan,language) self:updateButton("Language",language==2) else self.ui.Items.Layout_Language:setVisible(false) end end -- 关闭 function MJRoomSettingView:onClickClose() playBtnEffect() self:removeFromParent() end --更新显示设置 function MJRoomSettingView:updateButton(name,isOpen) if self.ui.Items["Layout_"..name.."_On"] then self.ui.Items["Layout_"..name.."_On"]:setVisible(isOpen) end if self.ui.Items["Layout_"..name.."_Off"] then self.ui.Items["Layout_"..name.."_Off"]:setVisible(not isOpen) end end function MJRoomSettingView:updateBG(viewType,bgIndex) if viewType == MJDefine.DesktopType.TwoD then local mj_desktop_2d_mjType = loadUserInfo("mj_desktop_2d_mjType") if mj_desktop_2d_mjType == MJDefine.DesktopType.TwoDGold then self.ui.Items.ImageView_2D:loadTexture("mj_set_2d_gold_select_"..bgIndex..".png", cc.TextureResType.plistType) else self.ui.Items.ImageView_2D:loadTexture("mj_set_2d_select_"..bgIndex..".png", cc.TextureResType.plistType) end else self.ui.Items.ImageView_3D:loadTexture("mj_set_3d_select_"..bgIndex..".png", cc.TextureResType.plistType) end end -- 音乐 function MJRoomSettingView:onClickMusic() playBtnEffect() app.systemSetting.info.music = not app.systemSetting.info.music app.systemSetting:save() self:updateButton("Music",app.systemSetting.info.music) end -- 音效 function MJRoomSettingView:onClickEffect() playBtnEffect() app.systemSetting.info.sound = not app.systemSetting.info.sound app.systemSetting:save() self:updateButton("Effect",app.systemSetting.info.sound) app:dispatchEvent({name = "onChangeYinXiao"}); end --方言 function MJRoomSettingView:onClickLanguage() playBtnEffect() local cacheLan = "mj_language"..(MJDefine.GameID or app.gameId) local language = tonumber(loadUserInfo(cacheLan)) == 1 and 2 or 1 saveUserInfo(cacheLan,language) self:updateButton("Language",language==2) app:dispatchEvent({name = MJDefine.MJEvent.ChangeLanguage}) end return MJRoomSettingView;