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.

344 lines
13 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 GuangAnRoomSettingView = class("GuangAnRoomSettingView", 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 GuangAnRoomSettingView:ctor()
  9. GuangAnRoomSettingView.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 GuangAnRoomSettingView:loadUi()
  17. local ui = loadUI("mj_guangan/res/ui_fangjian/mj_guangan_setting.ui")
  18. self.ui = ui
  19. self:addChild(ui)
  20. ui.Items.ImageView_BG:setTouchEnabled(true)
  21. end
  22. function GuangAnRoomSettingView: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"..(GAME_IDS.GuangAnMJ or MJDefine.GameID)
  27. --saveUserInfo(cacheLan,1)--恒定为普通话
  28. local defaultValue = tonumber(loadUserInfo(cacheLan)) or 2
  29. self:setYuColor(defaultValue)
  30. self.languageRadioManager:setDefault(defaultValue)
  31. self.languageRadioManager:setCallback(function ( value )
  32. self:setYuColor(value)
  33. saveUserInfo(cacheLan,value)
  34. logD("GuangAnRoomSettingView changeSound:"..value.." "..cacheLan)
  35. app:dispatchEvent({name = MJDefine.MJEvent.ChangeLanguage})
  36. end)
  37. end
  38. --self.ui.Items.CheckBox_Fangyan:setVisible(false)
  39. local guangan_mj_color = loadUserInfo("mj_guangan_desktop_2d_mjType") or MJDefine.DesktopType.TwoDL
  40. if guangan_mj_color == "" then
  41. guangan_mj_color = MJDefine.DesktopType.TwoDGold
  42. end
  43. if self.colorRadioManager then
  44. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_3d, MJDefine.DesktopType.ThreeD)
  45. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_2d, MJDefine.DesktopType.TwoD)
  46. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molvL_2d, MJDefine.DesktopType.TwoDL)
  47. self.colorRadioManager:addItem(self.ui.Items.CheckBox_jinhuang_2d, MJDefine.DesktopType.TwoDGold)
  48. self.colorRadioManager:setDefault(guangan_mj_color)
  49. self.colorRadioManager:setCallback(function ( value )
  50. saveUserInfo("mj_guangan_desktop_2d_mjType", value)
  51. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = value})
  52. --saveUserInfo("guangan_mj_color", value)
  53. --showTooltip("设置将在下一局生效!")
  54. end)
  55. end
  56. if self.desktopRadioManager then
  57. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_1, 1)
  58. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_2, 2)
  59. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_3, 3)
  60. local defaultValue = tonumber(loadUserInfo("guangan_mj_desktop_group")) or 3
  61. self:setZhuoColor(defaultValue)
  62. self.desktopRadioManager:setDefault(defaultValue)
  63. self.desktopRadioManager:setCallback(function ( value )
  64. saveUserInfo("guangan_mj_desktop_group", value)
  65. self:setZhuoColor(value)
  66. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewBG})
  67. --showTooltip("设置将在下一局生效!")
  68. end)
  69. end
  70. -- 关闭
  71. self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose))
  72. -- 音乐
  73. self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickMusic))
  74. self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music);
  75. --音乐音量
  76. self.ui.Items.Slider_Music:setPercent(app.systemSetting.info.musicVolume * 100 or 100)
  77. self.ui.Items.Slider_Music:addEventListener(handler(self, self.onMusicVolumeClickSlider))
  78. -- 音效
  79. self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickEffect))
  80. self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound);
  81. --音效音量
  82. self.ui.Items.Slider_Effect:setPercent(app.systemSetting.info.soundVolume * 100 or 100)
  83. self.ui.Items.Slider_Effect:addEventListener(handler(self, self.onSoundVolumeClickSlider))
  84. self:initDesktopRadioManager()
  85. --2D
  86. local function listener2D()
  87. if self.isFobidChangeDesktop then
  88. showTooltip("操作太频繁,请稍候再试!")
  89. self.ui.Items.CheckBox_2D:setSelectedState(false)
  90. return
  91. end
  92. self.ui.Items.CheckBox_3D:setSelectedState(false)
  93. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  94. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  95. self.ui.Items.CheckBox_2D:setSelectedState(true)
  96. --app.systemSetting.info.viewType=MJDefine.DesktopType.TwoD
  97. app.systemSetting:save()
  98. self:setZhuoBuText(2)
  99. self:setLanColor(2)
  100. app.systemSetting.info.viewType = MJDefine.DesktopType.TwoD
  101. app.systemSetting:save()
  102. --app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.TwoD})
  103. --showTooltip("设置将在下一局生效!")
  104. saveUserInfo("guangan_mj_color", MJDefine.DesktopType.TwoD)
  105. --2d可以选择麻将颜色
  106. self.ui.Items.Layout_color_2d:setVisible(true)
  107. self.ui.Items.Layout_color_3d:setVisible(false)
  108. self.isFobidChangeDesktop = true
  109. self.colorRadioManager:setDefault(MJDefine.DesktopType.TwoD)
  110. self:runDelay(2.0, function ()
  111. self.isFobidChangeDesktop = false
  112. end)
  113. end
  114. self.ui.Items.CheckBox_2D:addEventListener(listener2D)
  115. --3D
  116. local function listener3D()
  117. if self.isFobidChangeDesktop then
  118. showTooltip("操作太频繁,请稍候再试!")
  119. self.ui.Items.CheckBox_3D:setSelectedState(false)
  120. return
  121. end
  122. self.ui.Items.CheckBox_3D:setSelectedState(true)
  123. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  124. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  125. self.ui.Items.CheckBox_2D:setSelectedState(false)
  126. --app.systemSetting.info.viewType=MJDefine.DesktopType.ThreeD
  127. app.systemSetting:save()
  128. self:setZhuoBuText(3)
  129. self:setLanColor(3)
  130. --app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.ThreeD})
  131. app.systemSetting.info.viewType = MJDefine.DesktopType.ThreeD
  132. app.systemSetting:save()
  133. --showTooltip("设置将在下一局生效!")
  134. --3d麻将颜色只能为墨绿
  135. self.ui.Items.Layout_color_2d:setVisible(false)
  136. self.ui.Items.Layout_color_3d:setVisible(true)
  137. saveUserInfo("guangan_mj_color", MJDefine.DesktopType.ThreeD)
  138. self.colorRadioManager:setDefault(MJDefine.DesktopType.ThreeD)
  139. self.isFobidChangeDesktop = true
  140. self:runDelay(2.0, function ()
  141. self.isFobidChangeDesktop = false
  142. end)
  143. end
  144. self.ui.Items.CheckBox_3D:addEventListener(listener3D)
  145. if guangan_mj_color==MJDefine.DesktopType.ThreeD or app.systemSetting.info.viewType == "3d" then
  146. self.ui.Items.CheckBox_3D:setSelectedState(true)
  147. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  148. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  149. self.ui.Items.CheckBox_2D:setSelectedState(false)
  150. self:setZhuoBuText(3)
  151. self:setLanColor(3)
  152. self.ui.Items.Layout_color_2d:setVisible(false)
  153. self.ui.Items.Layout_color_3d:setVisible(true)
  154. self.ui.Items.CheckBox_molv_3d:setSelectedState(true)
  155. else
  156. self.ui.Items.CheckBox_3D:setSelectedState(false)
  157. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  158. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  159. self.ui.Items.CheckBox_2D:setSelectedState(true)
  160. self:setZhuoBuText(2)
  161. self:setLanColor(2)
  162. self.ui.Items.Layout_color_2d:setVisible(true)
  163. self.ui.Items.Layout_color_3d:setVisible(false)
  164. end
  165. --互动表情
  166. local faceKG = tonumber(loadUserInfo("guanganHuDongBiaoQingKG")) 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("guanganPingBiYuYinKG")) 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. self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided())
  179. end
  180. function GuangAnRoomSettingView:setZhuoBuText(zbType)--根据2d 3d设置桌布text 默认用红色2D 音效默认普通话
  181. if zbType == 2 then
  182. self.ui.Items.Text_16:setText("黄色")
  183. self.ui.Items.Text_17:setText("绿色")
  184. self.ui.Items.Text_18:setText("蓝色")
  185. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(127, 23))
  186. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(256, 23))
  187. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(385, 23))
  188. saveUserInfo("guangan_ZhuoMian_BG_Type", MJDefine.DesktopType.TwoD)
  189. else
  190. self.ui.Items.Text_16:setText("黄色")
  191. self.ui.Items.Text_17:setText("绿色")
  192. self.ui.Items.Text_18:setText("蓝色")
  193. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(127, 23))
  194. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(256, 23))
  195. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(385, 23))
  196. saveUserInfo("guangan_ZhuoMian_BG_Type", MJDefine.DesktopType.ThreeD)
  197. end
  198. end
  199. function GuangAnRoomSettingView:initDesktopRadioManager()
  200. self.bgmRadioManager = import("luaScript.Tools.RadioManager"):new();
  201. self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_1, 1) --轻快
  202. self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_2, 2) --舒缓
  203. local defaultValue = tonumber(loadUserInfo("guanganmj_bgm")) or 2
  204. self.bgmRadioManager:setDefault(defaultValue)
  205. self.bgmRadioManager:setCallback(function ( value )
  206. playBtnEffect();
  207. saveUserInfo("guanganmj_bgm", value)
  208. MJSound.PlayGameBGM(value);
  209. end)
  210. end
  211. --选择23D时,字体变颜色
  212. function GuangAnRoomSettingView:setLanColor(ttype)
  213. end
  214. --选择语言时,字体变颜色
  215. function GuangAnRoomSettingView:setYuColor(ttype)
  216. end
  217. --选择桌布时,字体变颜色
  218. function GuangAnRoomSettingView:setZhuoColor(ttype)
  219. end
  220. --互动表情开
  221. function GuangAnRoomSettingView:setHuDongBiaoQingOpen()
  222. self.ui.Items.Button_face_guan:setVisible(true)
  223. self.ui.Items.Button_face_kai:setVisible(false)
  224. saveUserInfo("guanganHuDongBiaoQingKG",0)
  225. --app.room:dispatchEvent({name = "ontSetPropEnabled", value = 0});
  226. --saveUserInfo("propEnable",0)
  227. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  228. end
  229. --互动表情关
  230. function GuangAnRoomSettingView:setHuDongBiaoQingClose()
  231. self.ui.Items.Button_face_guan:setVisible(false)
  232. self.ui.Items.Button_face_kai:setVisible(true)
  233. saveUserInfo("guanganHuDongBiaoQingKG",1)
  234. --app.room:dispatchEvent({name = "ontSetPropEnabled", value = 1});
  235. --saveUserInfo("propEnable",1)
  236. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  237. end
  238. --屏蔽语音开
  239. function GuangAnRoomSettingView:setPingBiYuYinOpen()
  240. self.ui.Items.Button_voice_guan:setVisible(true)
  241. self.ui.Items.Button_voice_kai:setVisible(false)
  242. saveUserInfo("guanganPingBiYuYinKG",0)
  243. --app.room:dispatchEvent({name = "onSetVoiceEnabled", value = 0});
  244. --saveUserInfo("voiceEnable",0)
  245. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  246. end
  247. --屏蔽语音关
  248. function GuangAnRoomSettingView:setPingBiYuYinClose()
  249. self.ui.Items.Button_voice_guan:setVisible(false)
  250. self.ui.Items.Button_voice_kai:setVisible(true)
  251. saveUserInfo("guanganPingBiYuYinKG",1)
  252. --app.room:dispatchEvent({name = "onSetVoiceEnabled", value = 1});
  253. --saveUserInfo("voiceEnable",1)
  254. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  255. end
  256. -- 音乐
  257. function GuangAnRoomSettingView:onClickMusic()
  258. app.systemSetting.info.music = not app.systemSetting.info.music
  259. if app.systemSetting.info.music == false then
  260. app.systemSetting.info.musicVolume = 0
  261. self.ui.Items.Slider_Music:setPercent(0)
  262. else
  263. self.ui.Items.Slider_Music:setPercent(100)
  264. app.systemSetting.info.musicVolume = 1
  265. end
  266. app.systemSetting:save()
  267. end
  268. -- 音效
  269. function GuangAnRoomSettingView:onClickEffect()
  270. app.systemSetting.info.sound = not app.systemSetting.info.sound
  271. if app.systemSetting.info.sound == false then
  272. app.systemSetting.info.soundVolume = 0
  273. self.ui.Items.Slider_Effect:setPercent(0)
  274. else
  275. self.ui.Items.Slider_Effect:setPercent(100)
  276. app.systemSetting.info.soundVolume = 1
  277. end
  278. app.systemSetting:save()
  279. app:dispatchEvent({name = "onChangeYinXiao"});
  280. end
  281. -- 音乐音量设置回调
  282. function GuangAnRoomSettingView:onMusicVolumeClickSlider()
  283. local percent = self.ui.Items.Slider_Music:getPercent();
  284. local curValue = percent / 100;
  285. app.systemSetting.info.musicVolume = curValue;
  286. app.systemSetting:save()
  287. end
  288. -- 音效音量设置回调
  289. function GuangAnRoomSettingView:onSoundVolumeClickSlider()
  290. local percent = self.ui.Items.Slider_Effect:getPercent();
  291. local curValue = percent / 100;
  292. app.systemSetting.info.soundVolume = curValue;
  293. app.systemSetting:save()
  294. end
  295. return GuangAnRoomSettingView