local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJSound = MJFramework.MJImport("mj.luaScript.MJSound") local MJFunction = MJFramework.MJImport("mj.luaScript.MJFunction") local MJRoomSettingView=MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomSettingView") local huamajiangRoomSettingView = class("huamajiangRoomSettingView", MJRoomSettingView); function huamajiangRoomSettingView:ctor () huamajiangRoomSettingView.super.ctor(self); end function huamajiangRoomSettingView:loadUI () local ui = loadUI("mj_huamajiang/res/ui_fangjian/mj_huamajiang_setting_view.ui") self.ui = ui self:addChild(ui) end function huamajiangRoomSettingView:initButton( ) self:initLanguageRadioManager(); self:initMahjongColorRadioManager(); self:initDesktopRadioManager(); self:initDesktopEventListener(); self:initEmojiAndVoice(); self:initBGMRadioManager(); -- 关闭 self.ui.Items.Button_Close:registerClick(handler(self , self.onClickClose)); -- 音乐 self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickMusic)) self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music); -- 音乐音量 self.ui.Items.Slider_Music:setPercent(app.systemSetting.info.musicVolume * 100 or 100) self.ui.Items.Slider_Music:addEventListener(handler(self, self.onMusicVolumeClickSlider)) -- 音效 self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickEffect)) self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound); -- 音效音量 self.ui.Items.Slider_Effect:setPercent(app.systemSetting.info.soundVolume * 100 or 100) self.ui.Items.Slider_Effect:addEventListener(handler(self, self.onSoundVolumeClickSlider)) self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided()) self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided()) end function huamajiangRoomSettingView:initLanguageRadioManager() self.languageRadioManager = import("luaScript.Tools.RadioManager"):new() self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, 1) self.languageRadioManager:addItem(self.ui.Items.CheckBox_FangYan, 2) local cacheName = "mj_language"..(MJDefine.GameID or app.gameId); local defaultValue = tonumber(loadUserInfo(cacheName)) or 2 -- self:setYuColor(defaultValue) self.languageRadioManager:setDefault(defaultValue) self.languageRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo(cacheName, value) -- self:setYuColor(value) MJSound.setSoundType(value); end) end --[[ 修改麻将颜色 ]] function huamajiangRoomSettingView:initMahjongColorRadioManager( ) local color = loadUserInfo("mj_desktop_2d_mjType") or MJDefine.DesktopType.TwoD if color == "" then color = MJDefine.DesktopType.TwoD end self.colorRadioManager = import("luaScript.Tools.RadioManager"):new(); -- self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_3d, MJDefine.DesktopType.ThreeD) self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ, MJDefine.DesktopType.TwoD) self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ_Gold, MJDefine.DesktopType.TwoDGold) self.colorRadioManager:setDefault(color) self.colorRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo("mj_desktop_2d_mjType", value) app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType, desktopType = value}) -- showTooltip("设置将在下一局生效!") end) end function huamajiangRoomSettingView:initDesktopRadioManager() self.bgmRadioManager = import("luaScript.Tools.RadioManager"):new(); self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_1, 1) self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_2, 2) local defaultValue = tonumber(loadUserInfo("huamajiang_bgm")) or 1 self.bgmRadioManager:setDefault(defaultValue) self.bgmRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo("huamajiang_bgm", value) MJSound.PlayGameBGM(value); end) end function huamajiangRoomSettingView:initDesktopEventListener() local function updateColorText () if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then self.ui.Items.Text_24:setText("墨绿") self.ui.Items.Text_17:setText("绿色") self.ui.Items.Text_25:setText("经典") self.ui.Items.CheckBox_desktop_1:setVisible(false) self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23)) self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23)) self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(350, 23)) local defaultValue = tonumber(loadUserInfo("huamajiang_desktop_background")) or 1 if defaultValue == 1 then defaultValue = 2 end if self.desktopRadioManager then self.desktopRadioManager:setDefault(defaultValue) end else self.ui.Items.Text_24:setText("绿色") self.ui.Items.Text_17:setText("棕色") self.ui.Items.Text_25:setText("蓝色") self.ui.Items.CheckBox_desktop_1:setVisible(true) self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23)) self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23)) self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(385, 23)) end end if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then self.ui.Items.CheckBox_3D:setSelectedState(true) self.ui.Items.CheckBox_3D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setSelectedState(false) self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false) else self.ui.Items.CheckBox_3D:setSelectedState(false) self.ui.Items.CheckBox_3D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setSelectedState(true) self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true) end updateColorText() --2D local function listener2D() playBtnEffect(); if self.isFobidChangeDesktop then showTooltip("操作太频繁,请稍候再试!") self.ui.Items.CheckBox_2D:setSelectedState(false) return end self.ui.Items.CheckBox_3D:setSelectedState(false) self.ui.Items.CheckBox_3D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setSelectedState(true) app.systemSetting.info.viewType=MJDefine.DesktopType.TwoD app.systemSetting:save() app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.TwoD}) -- showTooltip("设置将在下一局生效!") -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.TwoD) --2d可以选择麻将颜色 self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true) if self.colorRadioManager then self.colorRadioManager:setDefault(MJDefine.DesktopType.TwoD) end self.isFobidChangeDesktop = true self:runDelay(1.0, function () self.isFobidChangeDesktop = false end) updateColorText() end self.ui.Items.CheckBox_2D:addEventListener(listener2D) --3D local function listener3D() playBtnEffect(); if self.isFobidChangeDesktop then showTooltip("操作太频繁,请稍候再试!") self.ui.Items.CheckBox_3D:setSelectedState(false) return end self.ui.Items.CheckBox_3D:setSelectedState(true) self.ui.Items.CheckBox_3D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setSelectedState(false) app.systemSetting.info.viewType=MJDefine.DesktopType.ThreeD app.systemSetting:save() app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.ThreeD}) -- showTooltip("设置将在下一局生效!") --3d麻将颜色只能为墨绿 self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false) -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.ThreeD) if self.colorRadioManager then self.colorRadioManager:setDefault(MJDefine.DesktopType.ThreeD) end self.isFobidChangeDesktop = true self:runDelay(1.0, function () self.isFobidChangeDesktop = false end) updateColorText() end self.ui.Items.CheckBox_3D:addEventListener(listener3D) end function huamajiangRoomSettingView:initEmojiAndVoice( ) --互动表情 local faceKG = tonumber(loadUserInfo("propEnable")) or 1--0关 1开 self.ui.Items.Layout_Prop_Off:setVisible(faceKG==0) self.ui.Items.Layout_Prop_On:setVisible(faceKG==1) self.ui.Items.Layout_Prop_Off:registerClick(handler(self , self.setHuDongBiaoQingClose)) self.ui.Items.Layout_Prop_On:registerClick(handler(self , self.setHuDongBiaoQingOpen)) --屏蔽语音 local voiceKG = tonumber(loadUserInfo("voiceEnable")) or 1--0关 1开 self.ui.Items.Layout_Voice_Off:setVisible(voiceKG==0) self.ui.Items.Layout_Voice_On:setVisible(voiceKG==1) self.ui.Items.Layout_Voice_Off:registerClick(handler(self , self.setPingBiYuYinClose)) self.ui.Items.Layout_Voice_On:registerClick(handler(self , self.setPingBiYuYinOpen)) end function huamajiangRoomSettingView:initBGMRadioManager( ) self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new(); self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_1, 1) self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_2, 2) self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_3, 3) local defaultValue = tonumber(loadUserInfo("huamajiang_desktop_background")) or 2 self.desktopRadioManager:setDefault(defaultValue) self.desktopRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo("huamajiang_desktop_background", value) app:dispatchEvent({name = MJDefine.MJEvent.ChangeTableBg}) --showTooltip("设置将在下一局生效!") end) end function huamajiangRoomSettingView:onClickClose () huamajiangRoomSettingView.super.onClickClose(self); end -- 音乐 function huamajiangRoomSettingView:onClickMusic() app.systemSetting.info.music = not app.systemSetting.info.music app.systemSetting:save() playBtnEffect(); end -- 音效 function huamajiangRoomSettingView:onClickEffect() app.systemSetting.info.sound = not app.systemSetting.info.sound app.systemSetting:save() playBtnEffect(); end -- 音乐音量设置回调 function huamajiangRoomSettingView:onMusicVolumeClickSlider() local percent = self.ui.Items.Slider_Music:getPercent(); local curValue = percent / 100; app.systemSetting.info.musicVolume = curValue; app.systemSetting:save() end -- 音效音量设置回调 function huamajiangRoomSettingView:onSoundVolumeClickSlider() local percent = self.ui.Items.Slider_Effect:getPercent(); local curValue = percent / 100; app.systemSetting.info.soundVolume = curValue; app.systemSetting:save() end --互动表情开 function huamajiangRoomSettingView:setHuDongBiaoQingOpen() playBtnEffect(); self.ui.Items.Layout_Prop_Off:setVisible(true) self.ui.Items.Layout_Prop_On:setVisible(false) saveUserInfo("propEnable",0) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end --互动表情关 function huamajiangRoomSettingView:setHuDongBiaoQingClose() playBtnEffect(); self.ui.Items.Layout_Prop_Off:setVisible(false) self.ui.Items.Layout_Prop_On:setVisible(true) saveUserInfo("propEnable",1) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end --屏蔽语音开 function huamajiangRoomSettingView:setPingBiYuYinOpen() playBtnEffect(); self.ui.Items.Layout_Voice_Off:setVisible(true) self.ui.Items.Layout_Voice_On:setVisible(false) saveUserInfo("voiceEnable",0) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end --屏蔽语音关 function huamajiangRoomSettingView:setPingBiYuYinClose() playBtnEffect(); self.ui.Items.Layout_Voice_Off:setVisible(false) self.ui.Items.Layout_Voice_On:setVisible(true) saveUserInfo("voiceEnable",1) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end return huamajiangRoomSettingView;