No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

316 líneas
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 bazhongRoomSettingView = class("bazhongRoomSettingView", MJRoomSettingView)
  6. local CheckBox_Nor_Color = cc.c4b(21,99,97,255)
  7. local CheckBox_Sel_Color = cc.c4b(213,46,11,255)
  8. function bazhongRoomSettingView:ctor()
  9. bazhongRoomSettingView.super.ctor(self);
  10. self:loadUi()
  11. self.languageRadioManager = import("luaScript.Tools.RadioManager"):new()
  12. self.majhongRadioManager = import("luaScript.Tools.RadioManager"):new()
  13. self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new()
  14. self.colorRadioManager = import("luaScript.Tools.RadioManager"):new()
  15. end
  16. function bazhongRoomSettingView:loadUi()
  17. local ui = loadUI("mj_bazhong/res/ui_fangjian/mj_bazhong_setting.ui")
  18. self.ui = ui
  19. self:addChild(ui)
  20. ui.Items.ImageView_BG:setTouchEnabled(true)
  21. end
  22. function bazhongRoomSettingView:onEnter()
  23. if self.languageRadioManager then
  24. self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, 1)
  25. self.languageRadioManager:addItem(self.ui.Items.CheckBox_Fangyan, 2)
  26. local cacheLan = "mj_language"..(MJDefine.GameID or app.gameId)
  27. local defaultValue = tonumber(loadUserInfo(cacheLan)) or 2
  28. self:setYuColor(defaultValue)
  29. self.languageRadioManager:setDefault(defaultValue)
  30. self.languageRadioManager:setCallback(function ( value )
  31. logD("bazhongRoomSettingView:onEnter - languageRadioManager", cacheLan, defaultValue)
  32. self:setYuColor(value)
  33. saveUserInfo(cacheLan, value)
  34. app:dispatchEvent({name = MJDefine.MJEvent.ChangeLanguage})
  35. end)
  36. end
  37. local bazhong_mj_color = loadUserInfo("mj_desktop_2d_mjType_" .. (MJDefine.GameID or app.gameId)) or MJDefine.DesktopType.TwoD
  38. if bazhong_mj_color == "" then
  39. bazhong_mj_color = MJDefine.DesktopType.TwoD
  40. end
  41. if self.colorRadioManager then
  42. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_3d, MJDefine.DesktopType.ThreeD)
  43. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_2d, MJDefine.DesktopType.TwoD)
  44. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molvL_2d, MJDefine.DesktopType.TwoDL)
  45. self.colorRadioManager:addItem(self.ui.Items.CheckBox_jinhuang_2d, MJDefine.DesktopType.TwoDGold)
  46. self.colorRadioManager:setDefault(bazhong_mj_color)
  47. self.colorRadioManager:setCallback(function ( value )
  48. saveUserInfo("mj_desktop_2d_mjType_" .. (MJDefine.GameID or app.gameId), value)
  49. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = value})
  50. --saveUserInfo("mj_color_" .. (MJDefine.GameID or app.gameId), value)
  51. --showTooltip("设置将在下一局生效!")
  52. end)
  53. end
  54. if self.desktopRadioManager then
  55. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_1, 1)
  56. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_2, 2)
  57. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_3, 3)
  58. local defaultValue = tonumber(loadUserInfo("mj_desktop_group_" .. (MJDefine.GameID or app.gameId))) or 2
  59. self:setZhuoColor(defaultValue)
  60. self.desktopRadioManager:setDefault(defaultValue)
  61. self.desktopRadioManager:setCallback(function ( value )
  62. saveUserInfo("mj_desktop_group_" .. (MJDefine.GameID or app.gameId), value)
  63. self:setZhuoColor(value)
  64. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewBG})
  65. --showTooltip("设置将在下一局生效!")
  66. end)
  67. end
  68. -- 关闭
  69. self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose))
  70. -- 音乐
  71. self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickMusic))
  72. self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music);
  73. --音乐音量
  74. self.ui.Items.Slider_Music:setPercent(app.systemSetting.info.musicVolume * 100 or 100)
  75. self.ui.Items.Slider_Music:addEventListener(handler(self, self.onMusicVolumeClickSlider))
  76. -- 音效
  77. self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickEffect))
  78. self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound);
  79. --音效音量
  80. self.ui.Items.Slider_Effect:setPercent(app.systemSetting.info.soundVolume * 100 or 100)
  81. self.ui.Items.Slider_Effect:addEventListener(handler(self, self.onSoundVolumeClickSlider))
  82. --2D
  83. local function listener2D()
  84. if self.isFobidChangeDesktop then
  85. showTooltip("操作太频繁,请稍候再试!")
  86. self.ui.Items.CheckBox_2D:setSelectedState(false)
  87. return
  88. end
  89. self.ui.Items.CheckBox_3D:setSelectedState(false)
  90. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  91. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  92. self.ui.Items.CheckBox_2D:setSelectedState(true)
  93. --app.systemSetting.info.viewType=MJDefine.DesktopType.TwoD
  94. app.systemSetting:save()
  95. self:setZhuoBuText(2)
  96. self:setLanColor(2)
  97. app.systemSetting.info.viewType = MJDefine.DesktopType.TwoD
  98. app.systemSetting:save()
  99. --app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.TwoD})
  100. --showTooltip("设置将在下一局生效!")
  101. saveUserInfo("mj_color_" .. (MJDefine.GameID or app.gameId), MJDefine.DesktopType.TwoD)
  102. --2d可以选择麻将颜色
  103. self.ui.Items.Layout_color_2d:setVisible(true)
  104. self:update2DGoldLLShow()
  105. self.ui.Items.Layout_color_3d:setVisible(false)
  106. self.isFobidChangeDesktop = true
  107. self.colorRadioManager:setDefault(MJDefine.DesktopType.TwoD)
  108. self:runDelay(2.0, function ()
  109. self.isFobidChangeDesktop = false
  110. end)
  111. end
  112. self.ui.Items.CheckBox_2D:addEventListener(listener2D)
  113. --3D
  114. local function listener3D()
  115. if self.isFobidChangeDesktop then
  116. showTooltip("操作太频繁,请稍候再试!")
  117. self.ui.Items.CheckBox_3D:setSelectedState(false)
  118. return
  119. end
  120. self.ui.Items.CheckBox_3D:setSelectedState(true)
  121. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  122. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  123. self.ui.Items.CheckBox_2D:setSelectedState(false)
  124. --app.systemSetting.info.viewType=MJDefine.DesktopType.ThreeD
  125. app.systemSetting:save()
  126. self:setZhuoBuText(3)
  127. self:setLanColor(3)
  128. --app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.ThreeD})
  129. app.systemSetting.info.viewType = MJDefine.DesktopType.ThreeD
  130. app.systemSetting:save()
  131. --showTooltip("设置将在下一局生效!")
  132. --3d麻将颜色只能为墨绿
  133. self.ui.Items.Layout_color_2d:setVisible(false)
  134. self:update2DGoldLLShow()
  135. self.ui.Items.Layout_color_3d:setVisible(true)
  136. saveUserInfo("mj_color_" .. (MJDefine.GameID or app.gameId), MJDefine.DesktopType.ThreeD)
  137. self.colorRadioManager:setDefault(MJDefine.DesktopType.ThreeD)
  138. self.isFobidChangeDesktop = true
  139. self:runDelay(2.0, function ()
  140. self.isFobidChangeDesktop = false
  141. end)
  142. end
  143. self.ui.Items.CheckBox_3D:addEventListener(listener3D)
  144. if bazhong_mj_color==MJDefine.DesktopType.ThreeD or app.systemSetting.info.viewType == "3d" then
  145. self.ui.Items.CheckBox_3D:setSelectedState(true)
  146. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  147. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  148. self.ui.Items.CheckBox_2D:setSelectedState(false)
  149. self:setZhuoBuText(3)
  150. self:setLanColor(3)
  151. self.ui.Items.Layout_color_2d:setVisible(false)
  152. self.ui.Items.Layout_color_3d:setVisible(true)
  153. self.ui.Items.CheckBox_molv_3d:setSelectedState(true)
  154. else
  155. self.ui.Items.CheckBox_3D:setSelectedState(false)
  156. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  157. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  158. self.ui.Items.CheckBox_2D:setSelectedState(true)
  159. self:setZhuoBuText(2)
  160. self:setLanColor(2)
  161. self.ui.Items.Layout_color_2d:setVisible(true)
  162. self.ui.Items.Layout_color_3d:setVisible(false)
  163. end
  164. self:update2DGoldLLShow()
  165. --互动表情
  166. local faceKG = tonumber(loadUserInfo("HuDongBiaoQingKG_" .. (MJDefine.GameID or app.gameId))) or 1--0关 1开
  167. self.ui.Items.Button_face_guan:setVisible(faceKG==0)
  168. self.ui.Items.Button_face_kai:setVisible(faceKG==1)
  169. self.ui.Items.Button_face_guan:registerClick(handler(self , self.setHuDongBiaoQingClose))
  170. self.ui.Items.Button_face_kai:registerClick(handler(self , self.setHuDongBiaoQingOpen))
  171. --屏蔽语音
  172. local voiceKG = tonumber(loadUserInfo("PingBiYuYinKG_" .. (MJDefine.GameID or app.gameId))) or 1--0关 1开
  173. self.ui.Items.Button_voice_guan:setVisible(voiceKG==0)
  174. self.ui.Items.Button_voice_kai:setVisible(voiceKG==1)
  175. self.ui.Items.Button_voice_guan:registerClick(handler(self , self.setPingBiYuYinClose))
  176. self.ui.Items.Button_voice_kai:registerClick(handler(self , self.setPingBiYuYinOpen))
  177. self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided())
  178. if MJFunction.isVoiceFobided and type(MJFunction.isVoiceFobided)=='function' then
  179. self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided())
  180. else
  181. self.ui.Items.Layout_Voice:setVisible(not MJFunction.isPropFobided())
  182. end
  183. end
  184. --是否显示2D金黄大选项
  185. function bazhongRoomSettingView:update2DGoldLLShow()
  186. local gameID = MJDefine.GameID or app.gameId
  187. local isNeedShow = true--(gameID == GAME_IDS.bazhongMJ)
  188. self.ui.Items.CheckBox_molvL_2d:setVisible(isNeedShow)
  189. end
  190. function bazhongRoomSettingView:setZhuoBuText(zbType)--根据2d 3d设置桌布text 默认用红色2D 音效默认普通话
  191. if zbType == 2 then
  192. self.ui.Items.Text_16:setText("绿色")
  193. self.ui.Items.Text_17:setText("墨绿")
  194. self.ui.Items.Text_18:setText("经典")
  195. saveUserInfo("mj_ZhuoMian_BG_Type_" .. (MJDefine.GameID or app.gameId), MJDefine.DesktopType.TwoD)
  196. else
  197. self.ui.Items.Text_16:setText("绿色")
  198. self.ui.Items.Text_17:setText("墨绿")
  199. self.ui.Items.Text_18:setText("经典")
  200. saveUserInfo("mj_ZhuoMian_BG_Type_" .. (MJDefine.GameID or app.gameId), MJDefine.DesktopType.ThreeD)
  201. end
  202. end
  203. --选择23D时,字体变颜色
  204. function bazhongRoomSettingView:setLanColor(ttype)
  205. end
  206. --选择语言时,字体变颜色
  207. function bazhongRoomSettingView:setYuColor(ttype)
  208. end
  209. --选择桌布时,字体变颜色
  210. function bazhongRoomSettingView:setZhuoColor(ttype)
  211. end
  212. --互动表情开
  213. function bazhongRoomSettingView:setHuDongBiaoQingOpen()
  214. self.ui.Items.Button_face_guan:setVisible(true)
  215. self.ui.Items.Button_face_kai:setVisible(false)
  216. saveUserInfo("HuDongBiaoQingKG_" .. (MJDefine.GameID or app.gameId),0)
  217. --app.room:dispatchEvent({name = "ontSetPropEnabled", value = 0});
  218. --saveUserInfo("propEnable",0)
  219. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  220. end
  221. --互动表情关
  222. function bazhongRoomSettingView:setHuDongBiaoQingClose()
  223. self.ui.Items.Button_face_guan:setVisible(false)
  224. self.ui.Items.Button_face_kai:setVisible(true)
  225. saveUserInfo("HuDongBiaoQingKG_" .. (MJDefine.GameID or app.gameId),1)
  226. --app.room:dispatchEvent({name = "ontSetPropEnabled", value = 1});
  227. --saveUserInfo("propEnable",1)
  228. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  229. end
  230. --屏蔽语音开
  231. function bazhongRoomSettingView:setPingBiYuYinOpen()
  232. self.ui.Items.Button_voice_guan:setVisible(true)
  233. self.ui.Items.Button_voice_kai:setVisible(false)
  234. saveUserInfo("PingBiYuYinKG_" .. (MJDefine.GameID or app.gameId),0)
  235. --app.room:dispatchEvent({name = "onSetVoiceEnabled", value = 0});
  236. --saveUserInfo("voiceEnable",0)
  237. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  238. end
  239. --屏蔽语音关
  240. function bazhongRoomSettingView:setPingBiYuYinClose()
  241. self.ui.Items.Button_voice_guan:setVisible(false)
  242. self.ui.Items.Button_voice_kai:setVisible(true)
  243. saveUserInfo("PingBiYuYinKG_" .. (MJDefine.GameID or app.gameId),1)
  244. --app.room:dispatchEvent({name = "onSetVoiceEnabled", value = 1});
  245. --saveUserInfo("voiceEnable",1)
  246. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  247. end
  248. -- 音乐
  249. function bazhongRoomSettingView:onClickMusic()
  250. app.systemSetting.info.music = not app.systemSetting.info.music
  251. app.systemSetting:save()
  252. end
  253. -- 音效
  254. function bazhongRoomSettingView:onClickEffect()
  255. app.systemSetting.info.sound = not app.systemSetting.info.sound
  256. app.systemSetting:save()
  257. app:dispatchEvent({name = "onChangeYinXiao"});
  258. end
  259. -- 音乐音量设置回调
  260. function bazhongRoomSettingView:onMusicVolumeClickSlider()
  261. local percent = self.ui.Items.Slider_Music:getPercent();
  262. local curValue = percent / 100;
  263. app.systemSetting.info.musicVolume = curValue;
  264. app.systemSetting:save()
  265. end
  266. -- 音效音量设置回调
  267. function bazhongRoomSettingView:onSoundVolumeClickSlider()
  268. local percent = self.ui.Items.Slider_Effect:getPercent();
  269. local curValue = percent / 100;
  270. app.systemSetting.info.soundVolume = curValue;
  271. app.systemSetting:save()
  272. end
  273. return bazhongRoomSettingView