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.

246 regels
8.1 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJFunction=MJFramework.MJImport("mj.luaScript.MJFunction")
  3. -- 房间设置界面
  4. local MJRoomSettingView = class("MJRoomSettingView", cc.UIView)
  5. function MJRoomSettingView:ctor()
  6. MJRoomSettingView.super.ctor(self);
  7. end
  8. function MJRoomSettingView:onEnter()
  9. MJRoomSettingView.super.onEnter(self)
  10. self:loadUI()
  11. self:initButton()
  12. end
  13. function MJRoomSettingView:loadUI()
  14. local ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_set.ui")
  15. self.ui = ui
  16. self:addChild(ui)
  17. end
  18. --按钮事件
  19. function MJRoomSettingView:initButton()
  20. -- 关闭
  21. self.ui.Items.Button_Close:registerClick(handler(self , self.onClickClose))
  22. --音乐
  23. self.ui.Items.Layout_Music:registerClick(handler(self , self.onClickMusic))
  24. --音效
  25. self.ui.Items.Layout_Effect:registerClick(handler(self , self.onClickEffect))
  26. --道具
  27. self.ui.Items.Layout_Prop:registerClick(handler(self , self.onClickProp))
  28. --语音
  29. self.ui.Items.Layout_Voice:registerClick(handler(self , self.onClickVoice))
  30. self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided())
  31. self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided())
  32. -- self.languageRadioManager = import("luaScript.Tools.RadioManager"):new()
  33. self.viewTypeRadioManager = import("luaScript.Tools.RadioManager"):new()
  34. self.bg3dRadioManager = import("luaScript.Tools.RadioManager"):new()
  35. self.bg2dRadioManager = import("luaScript.Tools.RadioManager"):new()
  36. self.mj2dTypeRadioManager = import("luaScript.Tools.RadioManager"):new()
  37. --视图类型
  38. self.viewTypeRadioManager:addItem(self.ui.Items.CheckBox_3D, MJDefine.DesktopType.ThreeD)
  39. self.viewTypeRadioManager:addItem(self.ui.Items.CheckBox_2D, MJDefine.DesktopType.TwoD)
  40. self.viewTypeRadioManager:setDefault(app.systemSetting.info.viewType)
  41. self.viewTypeRadioManager:setCallback(function (value)
  42. app.systemSetting.info.viewType = value
  43. app.systemSetting:save()
  44. showTooltip("设置将在下一局生效!")
  45. self:updateBGRaidoEnable()
  46. -- app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType})
  47. end)
  48. --3D背景
  49. self.bg3dRadioManager:addItem(self.ui.Items.CheckBox_3D_1, 1)
  50. self.bg3dRadioManager:addItem(self.ui.Items.CheckBox_3D_2, 2)
  51. self.bg3dRadioManager:addItem(self.ui.Items.CheckBox_3D_3, 3)
  52. local mj_desktop_3d_bg = tonumber(loadUserInfo("mj_desktop_3d_bg")) or 1
  53. self.bg3dRadioManager:setDefault(mj_desktop_3d_bg)
  54. self:updateBG(MJDefine.DesktopType.ThreeD,mj_desktop_3d_bg)
  55. self.bg3dRadioManager:setCallback(function (value)
  56. self:updateBG(MJDefine.DesktopType.ThreeD,value)
  57. saveUserInfo("mj_desktop_3d_bg", value)
  58. if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then
  59. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewBG})
  60. else
  61. showTooltip("当前选项不是透视场景!")
  62. end
  63. end)
  64. --2D视图麻将牌类型
  65. self.mj2dTypeRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ, MJDefine.DesktopType.TwoD)
  66. self.mj2dTypeRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ_Gold, MJDefine.DesktopType.TwoDGold)
  67. local mj_desktop_2d_mjType = loadUserInfo("mj_desktop_2d_mjType") or MJDefine.DesktopType.TwoD
  68. self.mj2dTypeRadioManager:setDefault(mj_desktop_2d_mjType)
  69. self.mj2dTypeRadioManager:setCallback(function (value)
  70. saveUserInfo("mj_desktop_2d_mjType", value)
  71. local mj_desktop_2d_bg = tonumber(loadUserInfo("mj_desktop_2d_bg")) or 1
  72. self:updateBG(MJDefine.DesktopType.TwoD,mj_desktop_2d_bg)
  73. if app.systemSetting.info.viewType == MJDefine.DesktopType.TwoD then
  74. showTooltip("设置将在下一局生效!")
  75. -- app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType})
  76. else
  77. showTooltip("当前选项不是平面场景!")
  78. end
  79. end)
  80. --2D背景
  81. self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_1, 1)
  82. self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_2, 2)
  83. self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_3, 3)
  84. self.bg2dRadioManager:addItem(self.ui.Items.CheckBox_2D_4, 4)
  85. local mj_desktop_2d_bg = tonumber(loadUserInfo("mj_desktop_2d_bg")) or 1
  86. self.bg2dRadioManager:setDefault(mj_desktop_2d_bg)
  87. self:updateBG(MJDefine.DesktopType.TwoD,mj_desktop_2d_bg)
  88. self.bg2dRadioManager:setCallback(function (value)
  89. self:updateBG(MJDefine.DesktopType.TwoD,value)
  90. saveUserInfo("mj_desktop_2d_bg", value)
  91. if app.systemSetting.info.viewType == MJDefine.DesktopType.TwoD then
  92. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewBG})
  93. else
  94. showTooltip("当前选项不是平面场景!")
  95. end
  96. end)
  97. self:updateBGRaidoEnable()
  98. self:initLanguage()
  99. self:updateButton("Music",app.systemSetting.info.music)
  100. self:updateButton("Effect",app.systemSetting.info.sound)
  101. local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1
  102. local propEnable = tonumber(loadUserInfo("propEnable")) or 1
  103. self:updateButton("Voice",voiceEnable==1)
  104. self:updateButton("Prop",propEnable==1)
  105. end
  106. --道具
  107. function MJRoomSettingView:onClickProp()
  108. playBtnEffect()
  109. local propEnable = tonumber(loadUserInfo("propEnable")) or 1
  110. if propEnable==1 then
  111. propEnable = 0
  112. else
  113. propEnable =1
  114. end
  115. saveUserInfo("propEnable",propEnable)
  116. self:updateButton("Prop",propEnable==1)
  117. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  118. end
  119. --语音
  120. function MJRoomSettingView:onClickVoice()
  121. playBtnEffect()
  122. local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1
  123. if voiceEnable==1 then
  124. voiceEnable = 0
  125. else
  126. voiceEnable =1
  127. end
  128. saveUserInfo("voiceEnable",voiceEnable)
  129. self:updateButton("Voice",voiceEnable==1)
  130. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  131. end
  132. function MJRoomSettingView:updateBGRaidoEnable()
  133. if app.systemSetting.info.viewType == MJDefine.DesktopType.TwoD then
  134. self.bg2dRadioManager:setEnabled(true)
  135. self.bg3dRadioManager:setEnabled(false)
  136. self.mj2dTypeRadioManager:setEnabled(true)
  137. else
  138. self.bg2dRadioManager:setEnabled(false)
  139. self.bg3dRadioManager:setEnabled(true)
  140. self.mj2dTypeRadioManager:setEnabled(false)
  141. end
  142. end
  143. function MJRoomSettingView:initLanguage()
  144. --方言
  145. self.ui.Items.Layout_Language:registerClick(handler(self , self.onClickLanguage))
  146. --更新默认显示 1为普通 2为方言
  147. if MJDefine.isLanguage then
  148. local cacheLan = "mj_language"..(MJDefine.GameID or app.gameId)
  149. local language = tonumber(loadUserInfo(cacheLan)) or 1
  150. saveUserInfo(cacheLan,language)
  151. self:updateButton("Language",language==2)
  152. else
  153. self.ui.Items.Layout_Language:setVisible(false)
  154. end
  155. end
  156. -- 关闭
  157. function MJRoomSettingView:onClickClose()
  158. playBtnEffect()
  159. self:removeFromParent()
  160. end
  161. --更新显示设置
  162. function MJRoomSettingView:updateButton(name,isOpen)
  163. if self.ui.Items["Layout_"..name.."_On"] then
  164. self.ui.Items["Layout_"..name.."_On"]:setVisible(isOpen)
  165. end
  166. if self.ui.Items["Layout_"..name.."_Off"] then
  167. self.ui.Items["Layout_"..name.."_Off"]:setVisible(not isOpen)
  168. end
  169. end
  170. function MJRoomSettingView:updateBG(viewType,bgIndex)
  171. if viewType == MJDefine.DesktopType.TwoD then
  172. local mj_desktop_2d_mjType = loadUserInfo("mj_desktop_2d_mjType")
  173. if mj_desktop_2d_mjType == MJDefine.DesktopType.TwoDGold then
  174. self.ui.Items.ImageView_2D:loadTexture("mj_set_2d_gold_select_"..bgIndex..".png", cc.TextureResType.plistType)
  175. else
  176. self.ui.Items.ImageView_2D:loadTexture("mj_set_2d_select_"..bgIndex..".png", cc.TextureResType.plistType)
  177. end
  178. else
  179. self.ui.Items.ImageView_3D:loadTexture("mj_set_3d_select_"..bgIndex..".png", cc.TextureResType.plistType)
  180. end
  181. end
  182. -- 音乐
  183. function MJRoomSettingView:onClickMusic()
  184. playBtnEffect()
  185. app.systemSetting.info.music = not app.systemSetting.info.music
  186. app.systemSetting:save()
  187. self:updateButton("Music",app.systemSetting.info.music)
  188. end
  189. -- 音效
  190. function MJRoomSettingView:onClickEffect()
  191. playBtnEffect()
  192. app.systemSetting.info.sound = not app.systemSetting.info.sound
  193. app.systemSetting:save()
  194. self:updateButton("Effect",app.systemSetting.info.sound)
  195. app:dispatchEvent({name = "onChangeYinXiao"});
  196. end
  197. --方言
  198. function MJRoomSettingView:onClickLanguage()
  199. playBtnEffect()
  200. local cacheLan = "mj_language"..(MJDefine.GameID or app.gameId)
  201. local language = tonumber(loadUserInfo(cacheLan)) == 1 and 2 or 1
  202. saveUserInfo(cacheLan,language)
  203. self:updateButton("Language",language==2)
  204. app:dispatchEvent({name = MJDefine.MJEvent.ChangeLanguage})
  205. end
  206. return MJRoomSettingView;