KLGemSlateBagPanel.lua 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. ---@class KLGemSlateBagPanel:UIKmlLuaPanelBase
  2. ---@field view KLGemSlateBagPanelView
  3. local KLGemSlateBagPanel = class(UIKmlLuaPanelBase)
  4. local this =KLGemSlateBagPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. self:InitData(self.args)
  10. local bag_info = string.split(SL:GetConfig("cfg_global",6).value,'#')
  11. self.maxHor = tonumber(bag_info[1])
  12. self.maxVet = tonumber(bag_info[2])
  13. ---@type KLUIBagTileScrollViewItem
  14. GUI:UIPanel_Open("dev/ui/Common/Item/KLUIBagTileScrollView/KLUIBagTileScrollViewItem", self.view.root,self,
  15. {
  16. itemList=self.args.itemList,
  17. id=E_BagTileScrollViewType.GemInLay,
  18. hor = tonumber(bag_info[1]),
  19. vet = tonumber(bag_info[2]),
  20. canDrag = false,
  21. itemClick = (self.args and self.args.itemClickCallBack),
  22. callBackUI = self.args.callBackUI},
  23. true,
  24. function(bagTileScrollView)
  25. self.bagTileScrollView = bagTileScrollView
  26. end)
  27. end
  28. function this:InitData(data)
  29. self.x=(data and data.x)or 0
  30. self.y=(data and data.y)or 0
  31. end
  32. ---注册UI事件和服务器消息
  33. function this:RegistEvents()
  34. GUI:AddOnClickEvent(self.view.closeBtn, self, self.closeBtn)
  35. GUI:AddOnClickEvent(self.view.decomposeGem_Btn, self, self.OnClickDecomposeGem_Btn)
  36. GUI:AddOnClickEvent(self.view.combineGem_Btn, self, self.OnClickCombineGem_Btn)
  37. GUI:AddOnClickEvent(self.view.combineSlate_Btn, self, self.OnClickCombineSlate_Btn)
  38. --SL:RegisterLUAEvent(Event.BagInfo_Change, self.BagInfo_Change, self)
  39. SL:RegisterLUAEvent(LUA_EVENT_REFRESH_GEM_SLATE_INFO, self.BagInfo_Change, self)
  40. end
  41. ---界面显示时调用一次
  42. function this:Show()
  43. end
  44. ---创建或者刷新界面数据时调用
  45. function this:Refresh()
  46. local x = self.x
  47. local y = self.y
  48. self.bagType=self.args and self.args.bagType or nil
  49. if self.bagType==E_GemInlayType.Slate then
  50. GUI:SetActive(self.view.combineSlate_Btn,true)
  51. GUI:SetActive(self.view.combineGem_Btn,false)
  52. else
  53. GUI:SetActive(self.view.combineSlate_Btn,false)
  54. GUI:SetActive(self.view.combineGem_Btn,true)
  55. end
  56. GUI:setPosition(self.view.root, x, y)
  57. end
  58. function this:Close()
  59. end
  60. function this:closeBtn()
  61. GUI:UIPanel_Close("dev/ui/UIForgeGroup/Panel/KLUIForgeGroup/KLUIForgeGroupPanel")
  62. GUI:UIPanel_Close("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  63. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemInlay/KLGemInlayPanel")
  64. end
  65. ---@param eventData {index:number,item:CommonProtos.Item}[]
  66. function this:BagInfo_Change(eventId, eventData)
  67. local itemList={}
  68. if self.bagType==E_GemInlayType.Gem then
  69. itemList=self:GetGemItems()
  70. elseif self.bagType==E_GemInlayType.Slate then
  71. itemList=self:GetSlateItems()
  72. end
  73. self.bagTileScrollView:ClearBagItem()
  74. self.bagTileScrollView:RefreshItemByItem(itemList)
  75. -- self.bagTileScrollView:Item_Change(eventData)
  76. end
  77. function this:GetSlateItems()
  78. local data = {}
  79. local bagItemTabl = SL:GetMetaValue("BAG_DATA")[1]
  80. if bagItemTabl then
  81. for _, v in pairs(bagItemTabl) do
  82. if SL:HasConfig("cfg_equip_stoneBoard", v.cfgId, "id") then
  83. table.insert(data, v)
  84. end
  85. end
  86. end
  87. return SL.Bag:SortItemList(data)
  88. end
  89. function this:GetGemItems()
  90. local data = {}
  91. local bagItemTabl = SL:GetMetaValue("BAG_DATA")[1]
  92. if bagItemTabl then
  93. for _, v in pairs(bagItemTabl) do
  94. if SL:HasConfig("cfg_equip_gem", v.cfgId, "id") then
  95. table.insert(data, v)
  96. end
  97. end
  98. end
  99. return SL.Bag:SortItemList(data)
  100. end
  101. function this:OnClickDecomposeGem_Btn()
  102. ---@type KLUIForgeGroupPanel
  103. local tmpUI=GUI:GetUI("dev/ui/UIForgeGroup/Panel/KLUIForgeGroup/KLUIForgeGroupPanel")
  104. if tmpUI then
  105. GUI:Toggle_setIsOn(tmpUI.view.decomposeToggle,true)
  106. end
  107. end
  108. function this:OnClickCombineGem_Btn()
  109. GUI:UIPanel_Close("dev/ui/UIForgeGroup/Panel/KLUIForgeGroup/KLUIForgeGroupPanel")
  110. GUI:UIPanel_Close("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  111. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemInlay/KLGemInlayPanel")
  112. GUI:UIPanel_Open("dev/outui/UISynthesis/Panel/KLUISynthesis/KLUISynthesisPanel",nil,nil,{})
  113. end
  114. function this:OnClickCombineSlate_Btn()
  115. GUI:UIPanel_Close("dev/ui/UIForgeGroup/Panel/KLUIForgeGroup/KLUIForgeGroupPanel")
  116. GUI:UIPanel_Close("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  117. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemInlay/KLGemInlayPanel")
  118. GUI:UIPanel_Open("dev/outui/UISynthesis/Panel/KLUISynthesis/KLUISynthesisPanel",nil,nil,{})
  119. end
  120. return this