您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字

308 行
12 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJSound = MJFramework.MJImport("mj.luaScript.MJSound")
  3. local MJFunction = MJFramework.MJImport("mj.luaScript.MJFunction")
  4. local MJRoomSettingView=MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomSettingView")
  5. local huamajiangRoomSettingView = class("huamajiangRoomSettingView", MJRoomSettingView);
  6. function huamajiangRoomSettingView:ctor ()
  7. huamajiangRoomSettingView.super.ctor(self);
  8. end
  9. function huamajiangRoomSettingView:loadUI ()
  10. local ui = loadUI("mj_huamajiang/res/ui_fangjian/mj_huamajiang_setting_view.ui")
  11. self.ui = ui
  12. self:addChild(ui)
  13. end
  14. function huamajiangRoomSettingView:initButton( )
  15. self:initLanguageRadioManager();
  16. self:initMahjongColorRadioManager();
  17. self:initDesktopRadioManager();
  18. self:initDesktopEventListener();
  19. self:initEmojiAndVoice();
  20. self:initBGMRadioManager();
  21. -- 关闭
  22. self.ui.Items.Button_Close:registerClick(handler(self , self.onClickClose));
  23. -- 音乐
  24. self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickMusic))
  25. self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music);
  26. -- 音乐音量
  27. self.ui.Items.Slider_Music:setPercent(app.systemSetting.info.musicVolume * 100 or 100)
  28. self.ui.Items.Slider_Music:addEventListener(handler(self, self.onMusicVolumeClickSlider))
  29. -- 音效
  30. self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickEffect))
  31. self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound);
  32. -- 音效音量
  33. self.ui.Items.Slider_Effect:setPercent(app.systemSetting.info.soundVolume * 100 or 100)
  34. self.ui.Items.Slider_Effect:addEventListener(handler(self, self.onSoundVolumeClickSlider))
  35. self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided())
  36. self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided())
  37. end
  38. function huamajiangRoomSettingView:initLanguageRadioManager()
  39. self.languageRadioManager = import("luaScript.Tools.RadioManager"):new()
  40. self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, 1)
  41. self.languageRadioManager:addItem(self.ui.Items.CheckBox_FangYan, 2)
  42. local cacheName = "mj_language"..(MJDefine.GameID or app.gameId);
  43. local defaultValue = tonumber(loadUserInfo(cacheName)) or 2
  44. -- self:setYuColor(defaultValue)
  45. self.languageRadioManager:setDefault(defaultValue)
  46. self.languageRadioManager:setCallback(function ( value )
  47. playBtnEffect();
  48. saveUserInfo(cacheName, value)
  49. -- self:setYuColor(value)
  50. MJSound.setSoundType(value);
  51. end)
  52. end
  53. --[[
  54. 修改麻将颜色
  55. ]]
  56. function huamajiangRoomSettingView:initMahjongColorRadioManager( )
  57. local color = loadUserInfo("mj_desktop_2d_mjType") or MJDefine.DesktopType.TwoD
  58. if color == "" then
  59. color = MJDefine.DesktopType.TwoD
  60. end
  61. self.colorRadioManager = import("luaScript.Tools.RadioManager"):new();
  62. -- self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_3d, MJDefine.DesktopType.ThreeD)
  63. self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ, MJDefine.DesktopType.TwoD)
  64. self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ_Gold, MJDefine.DesktopType.TwoDGold)
  65. self.colorRadioManager:setDefault(color)
  66. self.colorRadioManager:setCallback(function ( value )
  67. playBtnEffect();
  68. saveUserInfo("mj_desktop_2d_mjType", value)
  69. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType, desktopType = value})
  70. -- showTooltip("设置将在下一局生效!")
  71. end)
  72. end
  73. function huamajiangRoomSettingView:initDesktopRadioManager()
  74. self.bgmRadioManager = import("luaScript.Tools.RadioManager"):new();
  75. self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_1, 1)
  76. self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_2, 2)
  77. local defaultValue = tonumber(loadUserInfo("huamajiang_bgm")) or 1
  78. self.bgmRadioManager:setDefault(defaultValue)
  79. self.bgmRadioManager:setCallback(function ( value )
  80. playBtnEffect();
  81. saveUserInfo("huamajiang_bgm", value)
  82. MJSound.PlayGameBGM(value);
  83. end)
  84. end
  85. function huamajiangRoomSettingView:initDesktopEventListener()
  86. local function updateColorText ()
  87. if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then
  88. self.ui.Items.Text_24:setText("墨绿")
  89. self.ui.Items.Text_17:setText("绿色")
  90. self.ui.Items.Text_25:setText("经典")
  91. self.ui.Items.CheckBox_desktop_1:setVisible(false)
  92. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23))
  93. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23))
  94. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(350, 23))
  95. local defaultValue = tonumber(loadUserInfo("huamajiang_desktop_background")) or 1
  96. if defaultValue == 1 then
  97. defaultValue = 2
  98. end
  99. if self.desktopRadioManager then
  100. self.desktopRadioManager:setDefault(defaultValue)
  101. end
  102. else
  103. self.ui.Items.Text_24:setText("绿色")
  104. self.ui.Items.Text_17:setText("棕色")
  105. self.ui.Items.Text_25:setText("蓝色")
  106. self.ui.Items.CheckBox_desktop_1:setVisible(true)
  107. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23))
  108. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23))
  109. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(385, 23))
  110. end
  111. end
  112. if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then
  113. self.ui.Items.CheckBox_3D:setSelectedState(true)
  114. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  115. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  116. self.ui.Items.CheckBox_2D:setSelectedState(false)
  117. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false)
  118. else
  119. self.ui.Items.CheckBox_3D:setSelectedState(false)
  120. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  121. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  122. self.ui.Items.CheckBox_2D:setSelectedState(true)
  123. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true)
  124. end
  125. updateColorText()
  126. --2D
  127. local function listener2D()
  128. playBtnEffect();
  129. if self.isFobidChangeDesktop then
  130. showTooltip("操作太频繁,请稍候再试!")
  131. self.ui.Items.CheckBox_2D:setSelectedState(false)
  132. return
  133. end
  134. self.ui.Items.CheckBox_3D:setSelectedState(false)
  135. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  136. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  137. self.ui.Items.CheckBox_2D:setSelectedState(true)
  138. app.systemSetting.info.viewType=MJDefine.DesktopType.TwoD
  139. app.systemSetting:save()
  140. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.TwoD})
  141. -- showTooltip("设置将在下一局生效!")
  142. -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.TwoD)
  143. --2d可以选择麻将颜色
  144. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true)
  145. if self.colorRadioManager then
  146. self.colorRadioManager:setDefault(MJDefine.DesktopType.TwoD)
  147. end
  148. self.isFobidChangeDesktop = true
  149. self:runDelay(1.0, function ()
  150. self.isFobidChangeDesktop = false
  151. end)
  152. updateColorText()
  153. end
  154. self.ui.Items.CheckBox_2D:addEventListener(listener2D)
  155. --3D
  156. local function listener3D()
  157. playBtnEffect();
  158. if self.isFobidChangeDesktop then
  159. showTooltip("操作太频繁,请稍候再试!")
  160. self.ui.Items.CheckBox_3D:setSelectedState(false)
  161. return
  162. end
  163. self.ui.Items.CheckBox_3D:setSelectedState(true)
  164. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  165. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  166. self.ui.Items.CheckBox_2D:setSelectedState(false)
  167. app.systemSetting.info.viewType=MJDefine.DesktopType.ThreeD
  168. app.systemSetting:save()
  169. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.ThreeD})
  170. -- showTooltip("设置将在下一局生效!")
  171. --3d麻将颜色只能为墨绿
  172. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false)
  173. -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.ThreeD)
  174. if self.colorRadioManager then
  175. self.colorRadioManager:setDefault(MJDefine.DesktopType.ThreeD)
  176. end
  177. self.isFobidChangeDesktop = true
  178. self:runDelay(1.0, function ()
  179. self.isFobidChangeDesktop = false
  180. end)
  181. updateColorText()
  182. end
  183. self.ui.Items.CheckBox_3D:addEventListener(listener3D)
  184. end
  185. function huamajiangRoomSettingView:initEmojiAndVoice( )
  186. --互动表情
  187. local faceKG = tonumber(loadUserInfo("propEnable")) or 1--0关 1开
  188. self.ui.Items.Layout_Prop_Off:setVisible(faceKG==0)
  189. self.ui.Items.Layout_Prop_On:setVisible(faceKG==1)
  190. self.ui.Items.Layout_Prop_Off:registerClick(handler(self , self.setHuDongBiaoQingClose))
  191. self.ui.Items.Layout_Prop_On:registerClick(handler(self , self.setHuDongBiaoQingOpen))
  192. --屏蔽语音
  193. local voiceKG = tonumber(loadUserInfo("voiceEnable")) or 1--0关 1开
  194. self.ui.Items.Layout_Voice_Off:setVisible(voiceKG==0)
  195. self.ui.Items.Layout_Voice_On:setVisible(voiceKG==1)
  196. self.ui.Items.Layout_Voice_Off:registerClick(handler(self , self.setPingBiYuYinClose))
  197. self.ui.Items.Layout_Voice_On:registerClick(handler(self , self.setPingBiYuYinOpen))
  198. end
  199. function huamajiangRoomSettingView:initBGMRadioManager( )
  200. self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new();
  201. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_1, 1)
  202. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_2, 2)
  203. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_3, 3)
  204. local defaultValue = tonumber(loadUserInfo("huamajiang_desktop_background")) or 2
  205. self.desktopRadioManager:setDefault(defaultValue)
  206. self.desktopRadioManager:setCallback(function ( value )
  207. playBtnEffect();
  208. saveUserInfo("huamajiang_desktop_background", value)
  209. app:dispatchEvent({name = MJDefine.MJEvent.ChangeTableBg})
  210. --showTooltip("设置将在下一局生效!")
  211. end)
  212. end
  213. function huamajiangRoomSettingView:onClickClose ()
  214. huamajiangRoomSettingView.super.onClickClose(self);
  215. end
  216. -- 音乐
  217. function huamajiangRoomSettingView:onClickMusic()
  218. app.systemSetting.info.music = not app.systemSetting.info.music
  219. app.systemSetting:save()
  220. playBtnEffect();
  221. end
  222. -- 音效
  223. function huamajiangRoomSettingView:onClickEffect()
  224. app.systemSetting.info.sound = not app.systemSetting.info.sound
  225. app.systemSetting:save()
  226. playBtnEffect();
  227. end
  228. -- 音乐音量设置回调
  229. function huamajiangRoomSettingView:onMusicVolumeClickSlider()
  230. local percent = self.ui.Items.Slider_Music:getPercent();
  231. local curValue = percent / 100;
  232. app.systemSetting.info.musicVolume = curValue;
  233. app.systemSetting:save()
  234. end
  235. -- 音效音量设置回调
  236. function huamajiangRoomSettingView:onSoundVolumeClickSlider()
  237. local percent = self.ui.Items.Slider_Effect:getPercent();
  238. local curValue = percent / 100;
  239. app.systemSetting.info.soundVolume = curValue;
  240. app.systemSetting:save()
  241. end
  242. --互动表情开
  243. function huamajiangRoomSettingView:setHuDongBiaoQingOpen()
  244. playBtnEffect();
  245. self.ui.Items.Layout_Prop_Off:setVisible(true)
  246. self.ui.Items.Layout_Prop_On:setVisible(false)
  247. saveUserInfo("propEnable",0)
  248. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  249. end
  250. --互动表情关
  251. function huamajiangRoomSettingView:setHuDongBiaoQingClose()
  252. playBtnEffect();
  253. self.ui.Items.Layout_Prop_Off:setVisible(false)
  254. self.ui.Items.Layout_Prop_On:setVisible(true)
  255. saveUserInfo("propEnable",1)
  256. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  257. end
  258. --屏蔽语音开
  259. function huamajiangRoomSettingView:setPingBiYuYinOpen()
  260. playBtnEffect();
  261. self.ui.Items.Layout_Voice_Off:setVisible(true)
  262. self.ui.Items.Layout_Voice_On:setVisible(false)
  263. saveUserInfo("voiceEnable",0)
  264. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  265. end
  266. --屏蔽语音关
  267. function huamajiangRoomSettingView:setPingBiYuYinClose()
  268. playBtnEffect();
  269. self.ui.Items.Layout_Voice_Off:setVisible(false)
  270. self.ui.Items.Layout_Voice_On:setVisible(true)
  271. saveUserInfo("voiceEnable",1)
  272. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  273. end
  274. return huamajiangRoomSettingView;