You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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