Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

323 wiersze
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 yibinmajiangRoomSettingView = class("yibinmajiangRoomSettingView", MJRoomSettingView);
  6. function yibinmajiangRoomSettingView:ctor ()
  7. yibinmajiangRoomSettingView.super.ctor(self);
  8. end
  9. function yibinmajiangRoomSettingView:loadUI ()
  10. local ui = loadUI("mj_yibinmajiang/res/ui_fangjian/mj_yibinmajiang_setting_view.ui")
  11. self.ui = ui
  12. self:addChild(ui)
  13. end
  14. function yibinmajiangRoomSettingView: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. end
  36. function yibinmajiangRoomSettingView:initLanguageRadioManager()
  37. self.languageRadioManager = import("luaScript.Tools.RadioManager"):new()
  38. self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, 1)
  39. self.languageRadioManager:addItem(self.ui.Items.CheckBox_FangYan, 2)
  40. local cacheName = "mj_language"..(MJDefine.GameID or app.gameId);
  41. local defaultValue = tonumber(loadUserInfo(cacheName)) or 2
  42. -- self:setYuColor(defaultValue)
  43. self.languageRadioManager:setDefault(defaultValue)
  44. self.languageRadioManager:setCallback(function ( value )
  45. playBtnEffect();
  46. saveUserInfo(cacheName, value)
  47. -- self:setYuColor(value)
  48. MJSound.setSoundType(value);
  49. end)
  50. -- 隐藏语言选项
  51. self.ui.Items.Layout_Language:setVisible(false)
  52. self.ui.Items.ImageView_line_1:setVisible(false)
  53. end
  54. --[[
  55. 修改麻将颜色
  56. ]]
  57. function yibinmajiangRoomSettingView:initMahjongColorRadioManager( )
  58. local color = loadUserInfo("mj_desktop_2d_mjType") or MJDefine.DesktopType.TwoD
  59. if color == "" then
  60. color = MJDefine.DesktopType.TwoD
  61. end
  62. self.colorRadioManager = import("luaScript.Tools.RadioManager"):new();
  63. -- self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_3d, MJDefine.DesktopType.ThreeD)
  64. self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ, MJDefine.DesktopType.TwoD)
  65. self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ_Gold, MJDefine.DesktopType.TwoDGold)
  66. self.colorRadioManager:setDefault(color)
  67. self.colorRadioManager:setCallback(function ( value )
  68. playBtnEffect();
  69. saveUserInfo("mj_desktop_2d_mjType", value)
  70. -- 这里要加是否是3d的判断,因为当点击了3d之后,还会触发一次麻将颜色的点击,但是里面没有3d,所以value值会是2d
  71. -- 所以判断当前类型是否是3d即可,是3d的话,就不需要改变了
  72. if app.systemSetting.info.viewType ~= '3d' then
  73. app.systemSetting.info.viewType = value
  74. app.systemSetting:save()
  75. end
  76. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType, desktopType = value})
  77. -- showTooltip("设置将在下一局生效!")
  78. end)
  79. end
  80. function yibinmajiangRoomSettingView:initDesktopRadioManager()
  81. self.bgmRadioManager = import("luaScript.Tools.RadioManager"):new();
  82. self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_1, 1)
  83. self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_2, 2)
  84. local defaultValue = tonumber(loadUserInfo("yibinmajiang_bgm")) or 1
  85. self.bgmRadioManager:setDefault(defaultValue)
  86. self.bgmRadioManager:setCallback(function ( value )
  87. playBtnEffect();
  88. saveUserInfo("yibinmajiang_bgm", value)
  89. MJSound.PlayGameBGM(value);
  90. end)
  91. -- 隐藏选择背景音乐按钮
  92. self.ui.Items.Layout_BGM:setVisible(false)
  93. self.ui.Items.ImageView_line_4:setVisible(false)
  94. end
  95. function yibinmajiangRoomSettingView:initDesktopEventListener()
  96. local function updateColorText ()
  97. if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then
  98. self.ui.Items.Text_24:setText("墨绿")
  99. self.ui.Items.Text_17:setText("绿色")
  100. self.ui.Items.Text_25:setText("经典")
  101. self.ui.Items.CheckBox_desktop_1:setVisible(false)
  102. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23))
  103. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23))
  104. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(350, 23))
  105. local defaultValue = tonumber(loadUserInfo("yibinmajiang_desktop_background")) or 1
  106. if defaultValue == 1 then
  107. defaultValue = 2
  108. end
  109. if self.desktopRadioManager then
  110. self.desktopRadioManager:setDefault(defaultValue)
  111. end
  112. else
  113. self.ui.Items.Text_24:setText("绿色")
  114. self.ui.Items.Text_17:setText("棕色")
  115. self.ui.Items.Text_25:setText("蓝色")
  116. self.ui.Items.CheckBox_desktop_1:setVisible(true)
  117. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23))
  118. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23))
  119. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(385, 23))
  120. end
  121. end
  122. if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then
  123. self.ui.Items.CheckBox_3D:setSelectedState(true)
  124. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  125. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  126. self.ui.Items.CheckBox_2D:setSelectedState(false)
  127. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false)
  128. else
  129. self.ui.Items.CheckBox_3D:setSelectedState(false)
  130. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  131. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  132. self.ui.Items.CheckBox_2D:setSelectedState(true)
  133. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true)
  134. end
  135. updateColorText()
  136. --2D
  137. local function listener2D()
  138. playBtnEffect();
  139. if self.isFobidChangeDesktop then
  140. showTooltip("操作太频繁,请稍候再试!")
  141. self.ui.Items.CheckBox_2D:setSelectedState(false)
  142. return
  143. end
  144. self.ui.Items.CheckBox_3D:setSelectedState(false)
  145. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  146. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  147. self.ui.Items.CheckBox_2D:setSelectedState(true)
  148. app.systemSetting.info.viewType=MJDefine.DesktopType.TwoD
  149. app.systemSetting:save()
  150. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.TwoD})
  151. -- showTooltip("设置将在下一局生效!")
  152. -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.TwoD)
  153. --2d可以选择麻将颜色
  154. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true)
  155. if self.colorRadioManager then
  156. self.colorRadioManager:setDefault(MJDefine.DesktopType.TwoD)
  157. end
  158. self.isFobidChangeDesktop = true
  159. self:runDelay(1.0, function ()
  160. self.isFobidChangeDesktop = false
  161. end)
  162. updateColorText()
  163. end
  164. self.ui.Items.CheckBox_2D:addEventListener(listener2D)
  165. --3D
  166. local function listener3D()
  167. playBtnEffect();
  168. if self.isFobidChangeDesktop then
  169. showTooltip("操作太频繁,请稍候再试!")
  170. self.ui.Items.CheckBox_3D:setSelectedState(false)
  171. return
  172. end
  173. self.ui.Items.CheckBox_3D:setSelectedState(true)
  174. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  175. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  176. self.ui.Items.CheckBox_2D:setSelectedState(false)
  177. app.systemSetting.info.viewType=MJDefine.DesktopType.ThreeD
  178. app.systemSetting:save()
  179. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.ThreeD})
  180. -- showTooltip("设置将在下一局生效!")
  181. --3d麻将颜色只能为墨绿
  182. self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false)
  183. -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.ThreeD)
  184. if self.colorRadioManager then
  185. self.colorRadioManager:setDefault(MJDefine.DesktopType.ThreeD)
  186. end
  187. self.isFobidChangeDesktop = true
  188. self:runDelay(1.0, function ()
  189. self.isFobidChangeDesktop = false
  190. end)
  191. updateColorText()
  192. end
  193. self.ui.Items.CheckBox_3D:addEventListener(listener3D)
  194. end
  195. function yibinmajiangRoomSettingView:initEmojiAndVoice( )
  196. --互动表情
  197. local faceKG = tonumber(loadUserInfo("propEnable")) or 1--0关 1开
  198. self.ui.Items.Layout_Prop_Off:setVisible(faceKG==0)
  199. self.ui.Items.Layout_Prop_On:setVisible(faceKG==1)
  200. self.ui.Items.Layout_Prop_Off:registerClick(handler(self , self.setHuDongBiaoQingClose))
  201. self.ui.Items.Layout_Prop_On:registerClick(handler(self , self.setHuDongBiaoQingOpen))
  202. --屏蔽语音
  203. local voiceKG = tonumber(loadUserInfo("voiceEnable")) or 1--0关 1开
  204. self.ui.Items.Layout_Voice_Off:setVisible(voiceKG==0)
  205. self.ui.Items.Layout_Voice_On:setVisible(voiceKG==1)
  206. self.ui.Items.Layout_Voice_Off:registerClick(handler(self , self.setPingBiYuYinClose))
  207. self.ui.Items.Layout_Voice_On:registerClick(handler(self , self.setPingBiYuYinOpen))
  208. self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided())
  209. self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided())
  210. end
  211. function yibinmajiangRoomSettingView:initBGMRadioManager( )
  212. self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new();
  213. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_1, 1)
  214. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_2, 2)
  215. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_3, 3)
  216. local defaultValue = tonumber(loadUserInfo("yibinmajiang_desktop_background")) or 2
  217. self.desktopRadioManager:setDefault(defaultValue)
  218. self.desktopRadioManager:setCallback(function ( value )
  219. playBtnEffect();
  220. saveUserInfo("yibinmajiang_desktop_background", value)
  221. app:dispatchEvent({name = MJDefine.MJEvent.ChangeTableBg})
  222. --showTooltip("设置将在下一局生效!")
  223. end)
  224. end
  225. function yibinmajiangRoomSettingView:onClickClose ()
  226. yibinmajiangRoomSettingView.super.onClickClose(self);
  227. end
  228. -- 音乐
  229. function yibinmajiangRoomSettingView:onClickMusic()
  230. app.systemSetting.info.music = not app.systemSetting.info.music
  231. app.systemSetting:save()
  232. playBtnEffect();
  233. end
  234. -- 音效
  235. function yibinmajiangRoomSettingView:onClickEffect()
  236. app.systemSetting.info.sound = not app.systemSetting.info.sound
  237. app.systemSetting:save()
  238. playBtnEffect();
  239. end
  240. -- 音乐音量设置回调
  241. function yibinmajiangRoomSettingView:onMusicVolumeClickSlider()
  242. local percent = self.ui.Items.Slider_Music:getPercent();
  243. local curValue = percent / 100;
  244. app.systemSetting.info.musicVolume = curValue;
  245. app.systemSetting:save()
  246. end
  247. -- 音效音量设置回调
  248. function yibinmajiangRoomSettingView:onSoundVolumeClickSlider()
  249. local percent = self.ui.Items.Slider_Effect:getPercent();
  250. local curValue = percent / 100;
  251. app.systemSetting.info.soundVolume = curValue;
  252. app.systemSetting:save()
  253. end
  254. --互动表情开
  255. function yibinmajiangRoomSettingView:setHuDongBiaoQingOpen()
  256. playBtnEffect();
  257. self.ui.Items.Layout_Prop_Off:setVisible(true)
  258. self.ui.Items.Layout_Prop_On:setVisible(false)
  259. saveUserInfo("propEnable",0)
  260. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  261. end
  262. --互动表情关
  263. function yibinmajiangRoomSettingView:setHuDongBiaoQingClose()
  264. playBtnEffect();
  265. self.ui.Items.Layout_Prop_Off:setVisible(false)
  266. self.ui.Items.Layout_Prop_On:setVisible(true)
  267. saveUserInfo("propEnable",1)
  268. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  269. end
  270. --屏蔽语音开
  271. function yibinmajiangRoomSettingView:setPingBiYuYinOpen()
  272. playBtnEffect();
  273. self.ui.Items.Layout_Voice_Off:setVisible(true)
  274. self.ui.Items.Layout_Voice_On:setVisible(false)
  275. saveUserInfo("voiceEnable",0)
  276. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  277. end
  278. --屏蔽语音关
  279. function yibinmajiangRoomSettingView:setPingBiYuYinClose()
  280. playBtnEffect();
  281. self.ui.Items.Layout_Voice_Off:setVisible(false)
  282. self.ui.Items.Layout_Voice_On:setVisible(true)
  283. saveUserInfo("voiceEnable",1)
  284. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  285. end
  286. return yibinmajiangRoomSettingView;