JumpLayerProxy.lua 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. local DebugProxy = requireProxy("DebugProxy")
  2. local JumpLayerProxy = class("JumpLayerProxy", DebugProxy)
  3. JumpLayerProxy.NAME = global.ProxyTable.JumpLayerProxy
  4. local cjson = require("cjson")
  5. function JumpLayerProxy:ctor()
  6. JumpLayerProxy.super.ctor(self)
  7. self._config = {}
  8. self._groupConfig = {}
  9. self.LayerTable = {}
  10. self:InitJumpMessage()
  11. end
  12. function JumpLayerProxy:LoadConfig()
  13. local config = requireGameConfig("cfg_menulayer")
  14. for _, v in pairs(config) do
  15. if v.group_id == 0 then
  16. v.group_id = nil
  17. end
  18. self._config[v.id] = v
  19. if v.group_id then
  20. self._groupConfig[v.group_id] = self._groupConfig[v.group_id] or {}
  21. table.insert(self._groupConfig[v.group_id], v)
  22. end
  23. end
  24. end
  25. function JumpLayerProxy:GetConfigByID(id)
  26. return self._config[id]
  27. end
  28. function JumpLayerProxy:GetConfigByGroup(groupId)
  29. return self._groupConfig[groupId]
  30. end
  31. function JumpLayerProxy:GetGroupByID(id)
  32. if self:GetConfigByID(id) then
  33. return self:GetConfigByID(id).group_id
  34. end
  35. return nil
  36. end
  37. function JumpLayerProxy:InitJumpMessage()
  38. local L = global.LayerTable
  39. local NT = global.NoticeTable
  40. local JumpMsg = self.LayerTable
  41. JumpMsg[global.LayerTable.PlayerLayer] = {open = NT.Layer_Player_Open, close = NT.Layer_Player_Close, extent = SLDefine.PlayerPage.MAIN_PLAYER_LAYER_EQUIP}
  42. JumpMsg[global.LayerTable.PlayerStateLayer] = {open = NT.Layer_Player_Open, close = NT.Layer_Player_Close, extent = SLDefine.PlayerPage.MAIN_PLAYER_LAYER_BASE_ATTRI}
  43. JumpMsg[global.LayerTable.PlayerAttLayer] = {open = NT.Layer_Player_Open, close = NT.Layer_Player_Close, extent = SLDefine.PlayerPage.MAIN_PLAYER_LAYER_EXTRA_ATTRO}
  44. JumpMsg[global.LayerTable.PlayerSkillLayer] = {open = NT.Layer_Player_Open, close = NT.Layer_Player_Close, extent = SLDefine.PlayerPage.MAIN_PLAYER_LAYER_SKILL}
  45. JumpMsg[global.LayerTable.PlayerTitleLayer] = {open = NT.Layer_Player_Open, close = NT.Layer_Player_Close, extent = SLDefine.PlayerPage.MAIN_PLAYER_LAYER_TITLE}
  46. JumpMsg[global.LayerTable.PlayerSuperEquipLayer] = {open = NT.Layer_Player_Open, close = NT.Layer_Player_Close, extent = SLDefine.PlayerPage.MAIN_PLAYER_LAYER_SUPER_EQUIP}
  47. JumpMsg[global.LayerTable.PlayerBuffLayer] = {open = NT.Layer_Player_Open, close = NT.Layer_Player_Close, extent = SLDefine.PlayerPage.MAIN_PLAYER_LAYER_BUFF}
  48. JumpMsg[global.LayerTable.PlayerBestRingLayer] = {open = NT.Layer_PlayerBestRing_Open, close = NT.Layer_PlayerBestRing_Close}
  49. JumpMsg[global.LayerTable.BagPanel] = {open = NT.Layer_Bag_Open, close = NT.Layer_Bag_Close}
  50. JumpMsg[global.LayerTable.Trade] = {open = NT.Layer_Trade_Open, close = NT.Layer_Trade_Close}
  51. JumpMsg[global.LayerTable.StallLayer] = {open = NT.Layer_StallLayer_Open, close = NT.Layer_StallLayer_Close}
  52. JumpMsg[global.LayerTable.StoreHotLayer] = {open = NT.Layer_PageStore_Open, close = NT.Layer_PageStore_Close, extent = 1} -- 热销
  53. JumpMsg[global.LayerTable.StoreBeautyLayer] = {open = NT.Layer_PageStore_Open, close = NT.Layer_PageStore_Close, extent = 2} -- 装饰
  54. JumpMsg[global.LayerTable.StoreEngineLayer] = {open = NT.Layer_PageStore_Open, close = NT.Layer_PageStore_Close, extent = 3} -- 功能
  55. JumpMsg[global.LayerTable.StoreFestivalLayer] = {open = NT.Layer_PageStore_Open, close = NT.Layer_PageStore_Close, extent = 4} -- 节日
  56. JumpMsg[global.LayerTable.StoreRechargeLayer] = {open = NT.Layer_Recharge_Open, close = NT.Layer_Recharge_Close, extent = 5} -- 充值
  57. JumpMsg[global.LayerTable.RankLayer] = {open = NT.Layer_Rank_Open, close = NT.Layer_Rank_Close}
  58. JumpMsg[global.LayerTable.GuildMain] = {open = NT.Layer_Guild_Main_Open, close = NT.Layer_Guild_Main_Close}
  59. JumpMsg[global.LayerTable.GuildMember] = {open = NT.Layer_Guild_Member_Open, close = NT.Layer_Guild_Member_Close}
  60. JumpMsg[global.LayerTable.GuildList] = {open = NT.Layer_Guild_List_Open, close = NT.Layer_Guild_List_Close}
  61. JumpMsg[global.LayerTable.GuildApply] = {open = NT.Layer_Guild_ApplyList_Open, close = NT.Layer_Guild_ApplyList_Close}
  62. JumpMsg[global.LayerTable.GuildCreate] = {open = NT.Layer_Guild_Create_Open, close = NT.Layer_Guild_Create_Close}
  63. JumpMsg[global.LayerTable.Team] = {open = NT.Layer_Team_Attach, close = NT.Layer_Team_UnAttach}
  64. JumpMsg[global.LayerTable.Mail] = {open = NT.Layer_Mail_Attach, close = NT.Layer_Mail_UnAttach}
  65. JumpMsg[global.LayerTable.Friend] = {open = NT.Layer_Friend_Attach, close = NT.Layer_Friend_UnAttach}
  66. JumpMsg[global.LayerTable.NearPlayer] = {open = NT.Layer_NearPlayer_Attach, close = NT.Layer_NearPlayer_UnAttach}
  67. JumpMsg[global.LayerTable.SkillSetting] = {open = NT.Layer_SkillSetting_Open, close = NT.Layer_SkillSetting_Close}
  68. JumpMsg[global.LayerTable.Auction] = {open = NT.Layer_AuctionMain_Open, close = NT.Layer_AuctionMain_Close}
  69. JumpMsg[global.LayerTable.CompoundLayer] = {open = NT.Layer_CompoundItemLayer_Open, close = NT.Layer_CompoundItemLayer_Close} -- 合成
  70. if global.OtherTradingBank then
  71. JumpMsg[global.LayerTable.TradingBankBuyLayer] = {open = NT.Layer_TradingBankBuyLayer_Open_other, close = NT.Layer_TradingBankBuyLayer_Close_other}
  72. JumpMsg[global.LayerTable.TradingBankSellLayer] = {open = NT.Layer_TradingBankSellLayer_Open_other, close = NT.Layer_TradingBankSellLayer_Close_other}
  73. JumpMsg[global.LayerTable.TradingBankGoodsLayer] = {open = NT.Layer_TradingBankGoodsLayer_Open_other, close = NT.Layer_TradingBankGoodsLayer_Close_other}
  74. JumpMsg[global.LayerTable.TradingBankMeLayer] = {open = NT.Layer_TradingBankMeLayer_Open_other, close = NT.Layer_TradingBankMeLayer_Close_other}
  75. else
  76. JumpMsg[global.LayerTable.TradingBankBuyLayer] = {open = NT.Layer_TradingBankBuyLayer_Open, close = NT.Layer_TradingBankBuyLayer_Close}
  77. JumpMsg[global.LayerTable.TradingBankSellLayer] = {open = NT.Layer_TradingBankSellLayer_Open, close = NT.Layer_TradingBankSellLayer_Close}
  78. JumpMsg[global.LayerTable.TradingBankGoodsLayer] = {open = NT.Layer_TradingBankGoodsLayer_Open, close = NT.Layer_TradingBankGoodsLayer_Close}
  79. JumpMsg[global.LayerTable.TradingBankMeLayer] = {open = NT.Layer_TradingBankMeLayer_Open, close = NT.Layer_TradingBankMeLayer_Close}
  80. JumpMsg[global.LayerTable.TradingBankSenkBuyLayer] = {open = NT.Layer_TradingBankSeekBuyLayer_Open, close = NT.Layer_TradingBankSeekBuyLayer_Close}
  81. end
  82. JumpMsg[global.LayerTable.SettingBasic] = {open = NT.Layer_SettingBasic_Open, close = NT.Layer_SettingBasic_Close}
  83. JumpMsg[global.LayerTable.SettingWindowRange] = {open = NT.Layer_SettingWindowRange_Open, close = NT.Layer_SettingWindowRange_Close}
  84. JumpMsg[global.LayerTable.SettingFight] = {open = NT.Layer_SettingLaunch_Open, close = NT.Layer_SettingLaunch_Close}
  85. JumpMsg[global.LayerTable.SettingProtect] = {open = NT.Layer_SettingProtect_Open, close = NT.Layer_SettingProtect_Close}
  86. JumpMsg[global.LayerTable.SettingAuto] = {open = NT.Layer_SettingAuto_Open, close = NT.Layer_SettingAuto_Close}
  87. JumpMsg[global.LayerTable.SettingHelp] = {open = NT.Layer_SettingHelp_Open, close = NT.Layer_SettingHelp_Close}
  88. end
  89. function JumpLayerProxy:GetLayerMessageById(id)
  90. return self.LayerTable[id]
  91. end
  92. function JumpLayerProxy:CloseAllPanelByGroup(group)
  93. if self._groupConfig[group] then
  94. for _,v in pairs(self._groupConfig[group]) do
  95. self:ClosePanelById(v.id)
  96. end
  97. end
  98. end
  99. function JumpLayerProxy:ClosePanelById(id)
  100. if not id then return end
  101. if self.LayerTable[id] then
  102. global.Facade:sendNotification(self.LayerTable[id].close)
  103. end
  104. end
  105. function JumpLayerProxy:OpenPanelById(id, parent, extent)
  106. if not id then return end
  107. if self.LayerTable[id] then
  108. global.Facade:sendNotification(self.LayerTable[id].open, {parent = parent, extent = extent or self.LayerTable[id].extent})
  109. end
  110. end
  111. function JumpLayerProxy:CheckCondition(id)
  112. local config = self:GetConfigByID(id)
  113. if not config then
  114. return true
  115. end
  116. local ConditionProxy = global.Facade:retrieveProxy(global.ProxyTable.ConditionProxy)
  117. return ConditionProxy:CheckCondition(config.condition)
  118. end
  119. return JumpLayerProxy