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.

269 lines
8.3 KiB

  1. -- 房间设置界面
  2. local ZPDef = ZPFramework.ZPImport("zp_base.luaScript.ZPDef")
  3. local ZPFunctions = ZPFramework.ZPImport("zp_base.luaScript.ZPFunctions")
  4. local ZPSound = ZPFramework.ZPImport("zp_base.luaScript.ZPSound")
  5. local xichongRoomSettingView = class("xichongRoomSettingView", cc.UIView)
  6. function xichongRoomSettingView:ctor()
  7. xichongRoomSettingView.super.ctor(self);
  8. end
  9. function xichongRoomSettingView:loadUI()
  10. local ui = loadUI("zp_xichong/res/ui/ui_fangjian/xichong_ui_shezhi.ui");
  11. self.ui = ui;
  12. self:addChild(ui);
  13. end
  14. function xichongRoomSettingView:onEnter()
  15. xichongRoomSettingView.super.onEnter(self)
  16. self:loadUI()
  17. -- 关闭
  18. self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose))
  19. self:initMusicSlider()
  20. self:initLanguageRadioManager()
  21. self:initDesktopRadioManager()
  22. self:initHuDongDaoJu()
  23. self:initYuYin()
  24. self:initStyleRadioManager()
  25. end
  26. ---
  27. -- 初始化音乐、音效滑动条
  28. -- @return
  29. --
  30. function xichongRoomSettingView:initMusicSlider()
  31. --音乐
  32. self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickYinYue))
  33. self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music);
  34. -- 音效
  35. self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickYinXiao))
  36. self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound);
  37. --音乐音量
  38. self.ui.Items.SliderMusic:setPercent(app.systemSetting.info.musicVolume * 100 or 100)
  39. self.ui.Items.SliderMusic:addEventListener(handler(self, self.onMusicVolumeClickSlider))
  40. --音效音量
  41. self.ui.Items.SliderEffect:setPercent(app.systemSetting.info.soundVolume * 100 or 100)
  42. self.ui.Items.SliderEffect:addEventListener(handler(self, self.onSoundVolumeClickSlider))
  43. end
  44. ---
  45. -- 初始化方言选项
  46. -- @return
  47. --
  48. function xichongRoomSettingView:initLanguageRadioManager()
  49. self.languageRadioManager = import("luaScript.Tools.RadioManager"):new();
  50. self:initRadioManagerColor(self.languageRadioManager)
  51. self.languageRadioManager:addItem(self.ui.Items.CheckBox_ChenZhou, ZPDef.GameLanguageType.FANG_YAN);
  52. self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, ZPDef.GameLanguageType.PU_TONG_HUA);
  53. local cacheLan = "LanguageType"..app.gameId
  54. local languageType = tonumber(loadUserInfo(cacheLan)) or ZPDef.GameLanguageType.PU_TONG_HUA
  55. self.languageRadioManager:setDefault(languageType)
  56. local function callback(idx)
  57. saveUserInfo(cacheLan,idx)
  58. end
  59. self.languageRadioManager:setCallback(callback)
  60. self.ui.Items.CheckBox_ChenZhou:setVisible(false)
  61. end
  62. ---
  63. -- 初始化桌布选项
  64. -- @return
  65. --
  66. function xichongRoomSettingView:initDesktopRadioManager()
  67. self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new()
  68. self:initRadioManagerColor(self.desktopRadioManager)
  69. local cacheGameBgPic = "gameBgPicture"..app.gameId
  70. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_1, 1)
  71. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_2, 2)
  72. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_3, 3)
  73. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_4, 4)
  74. local defaultValue = tonumber(loadUserInfo(cacheGameBgPic)) or 1
  75. self.desktopRadioManager:setDefault(defaultValue)
  76. self.desktopRadioManager:setCallback(function ( value )
  77. --更换牌背
  78. app:dispatchEvent({name = "onChangeTable", idx = value});
  79. end)
  80. end
  81. ---
  82. -- 初始化版式
  83. -- @param
  84. -- @return
  85. --
  86. function xichongRoomSettingView:initStyleRadioManager( )
  87. if not self.styleRadioManager then
  88. self.styleRadioManager = import("luaScript.Tools.RadioManager"):new()
  89. self:initRadioManagerColor(self.styleRadioManager)
  90. self.styleRadioManager:addItem(self.ui.Items.CheckBox_JingDian, ZPDef.GameStyleType.JINGDIAN)
  91. self.styleRadioManager:addItem(self.ui.Items.CheckBox_XianDai, ZPDef.GameStyleType.XIANDAI)
  92. self.styleRadioManager:setCallback(function (value)
  93. local cacheStyleKey = "gameStyleType" .. app.gameId
  94. saveUserInfo(cacheStyleKey, value)
  95. app:dispatchEvent({name = ZPDef.ZPEvent.ChangeViewType, desktopType = value})
  96. self.ui.Items.CheckBox_JingDian:setTouchEnabled(false)
  97. self.ui.Items.CheckBox_XianDai:setTouchEnabled(false)
  98. self:runDelay(1.0, function ()
  99. self.ui.Items.CheckBox_JingDian:setTouchEnabled(true)
  100. self.ui.Items.CheckBox_XianDai:setTouchEnabled(true)
  101. end)
  102. end)
  103. end
  104. local cacheStyleKey = "gameStyleType" .. app.gameId
  105. local style = loadUserInfo(cacheStyleKey) or ZPDef.GameStyleType.JINGDIAN
  106. self.styleRadioManager:setDefault(tonumber(style))
  107. end
  108. ---
  109. -- 初始化互动道具
  110. -- @return
  111. --
  112. function xichongRoomSettingView:initHuDongDaoJu()
  113. local btnOpen = self.ui.Items.Button_HuDongDaoJu_Open
  114. local btnClose = self.ui.Items.Button_HuDongDaoJu_Close
  115. btnOpen:registerClick(handler(self, self.onBtnHuDongDaoJuOpenClicked))
  116. btnClose:registerClick(handler(self, self.onBtnHuDongDaoJuCloseClicked))
  117. self:updateHuDongDaoJu()
  118. self.ui.Items.Layout_HuDongDaoJu:setVisible(not ZPFunctions.isPropFobided())
  119. end
  120. ---
  121. -- 刷新互动道具显示
  122. -- @return
  123. --
  124. function xichongRoomSettingView:updateHuDongDaoJu()
  125. local propEnable = tonumber(loadUserInfo("propEnable")) or 1
  126. saveUserInfo("propEnable", propEnable)
  127. self.ui.Items.Button_HuDongDaoJu_Open:setVisible(propEnable ~= 1)
  128. self.ui.Items.Button_HuDongDaoJu_Close:setVisible(propEnable == 1)
  129. app:dispatchEvent({name = "EVENT_CHANGE_CHAT_ENABLED"});
  130. end
  131. ---
  132. -- 点击打开互动道具
  133. -- @return
  134. --
  135. function xichongRoomSettingView:onBtnHuDongDaoJuOpenClicked()
  136. playBtnEffect()
  137. saveUserInfo("propEnable", 1)
  138. self:updateHuDongDaoJu()
  139. end
  140. ---
  141. -- 关闭互动道具
  142. -- @return
  143. --
  144. function xichongRoomSettingView:onBtnHuDongDaoJuCloseClicked()
  145. playBtnEffect()
  146. saveUserInfo("propEnable", 0)
  147. self:updateHuDongDaoJu()
  148. end
  149. ---
  150. -- 初始化语音
  151. -- @return
  152. --
  153. function xichongRoomSettingView:initYuYin()
  154. local btnOpen = self.ui.Items.Button_YuYin_Open
  155. local btnClose = self.ui.Items.Button_YuYin_Close
  156. btnOpen:registerClick(handler(self, self.onBtnYuYinOpenClicked))
  157. btnClose:registerClick(handler(self, self.onBtnYuYinCloseClicked))
  158. self:updateYuYin()
  159. self.ui.Items.Layout_YuYin:setVisible(not ZPFunctions.isPropFobided())
  160. end
  161. ---
  162. -- 刷新语音显示
  163. -- @return
  164. --
  165. function xichongRoomSettingView:updateYuYin()
  166. local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1
  167. saveUserInfo("voiceEnable", voiceEnable)
  168. self.ui.Items.Button_YuYin_Open:setVisible(voiceEnable ~= 1)
  169. self.ui.Items.Button_YuYin_Close:setVisible(voiceEnable == 1)
  170. app:dispatchEvent({name = "EVENT_CHANGE_CHAT_ENABLED"});
  171. end
  172. ---
  173. -- 点击打开语音
  174. -- @return
  175. --
  176. function xichongRoomSettingView:onBtnYuYinOpenClicked()
  177. playBtnEffect()
  178. saveUserInfo("voiceEnable", 1)
  179. self:updateYuYin()
  180. end
  181. ---
  182. -- 关闭语音
  183. -- @return
  184. --
  185. function xichongRoomSettingView:onBtnYuYinCloseClicked()
  186. playBtnEffect()
  187. saveUserInfo("voiceEnable", 0)
  188. self:updateYuYin()
  189. end
  190. ---
  191. -- 初始化单选框颜色
  192. -- @param radioManager
  193. -- @return
  194. --
  195. function xichongRoomSettingView:initRadioManagerColor(radioManager)
  196. if not radioManager then
  197. return ;
  198. end
  199. -- local CheckBox_Nor_Color = cc.c4b(21,99,97, 255)
  200. -- local CheckBox_Sel_Color = cc.c4b(213,46,11, 255)
  201. -- radioManager:setNormalColor(CheckBox_Nor_Color)
  202. -- radioManager:setSelectColor(CheckBox_Sel_Color)
  203. end
  204. ---
  205. -- 关闭
  206. -- @return
  207. --
  208. function xichongRoomSettingView:onClickClose()
  209. playBtnEffect()
  210. self:removeFromParent()
  211. end
  212. ---
  213. -- 音乐
  214. -- @return
  215. --
  216. function xichongRoomSettingView:onClickYinYue()
  217. app.systemSetting.info.music = self.ui.Items.CheckBox_Music:getSelectedState();
  218. app.systemSetting:save()
  219. end
  220. ---
  221. -- 音效
  222. -- @return
  223. --
  224. function xichongRoomSettingView:onClickYinXiao()
  225. app.systemSetting.info.sound = self.ui.Items.CheckBox_Effect:getSelectedState();
  226. app.systemSetting:save()
  227. app:dispatchEvent({name = "onChangeYinXiao"});
  228. end
  229. ---
  230. -- 音乐音量设置回调
  231. -- @return
  232. --
  233. function xichongRoomSettingView:onMusicVolumeClickSlider()
  234. local percent = self.ui.Items.SliderMusic:getPercent();
  235. local curValue = percent / 100;
  236. app.systemSetting.info.musicVolume = curValue;
  237. app.systemSetting:save()
  238. end
  239. ---
  240. -- 音效音量设置回调
  241. -- @return
  242. --
  243. function xichongRoomSettingView:onSoundVolumeClickSlider()
  244. local percent = self.ui.Items.SliderEffect:getPercent();
  245. local curValue = percent / 100;
  246. app.systemSetting.info.soundVolume = curValue;
  247. app.systemSetting:save()
  248. end
  249. return xichongRoomSettingView;