UIChipRoomView.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. local UIChipRoomView = require("UIChip/UIChipRoomView_Generate")
  2. function UIChipRoomView:OnAwake(data)
  3. self.controller = require("UIChip/UIChipRoomCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIChipRoomView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.RESET_CHIP_DECOMPOSE_CACHE_COUNTS, function()
  9. self.controller:ResetChipsCost()
  10. self:RefreshShow(false)
  11. end)
  12. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.CHIP_CHANGE, function()
  13. self.controller:ResetChipsCost()
  14. self:RefreshShow(true)
  15. end)
  16. end
  17. function UIChipRoomView:FillContent(data, uiBase)
  18. self.uiBase = uiBase
  19. local gameObject = self.uiBase:GetRoot()
  20. if gameObject ~= nil then
  21. self.gameObject = gameObject
  22. self.transform = gameObject.transform
  23. end
  24. self:InitGenerate(self.transform, data)
  25. self:Init()
  26. end
  27. function UIChipRoomView:Init()
  28. self:RefreshShow(true)
  29. end
  30. function UIChipRoomView:RemoveEventListener()
  31. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  32. end
  33. function UIChipRoomView:AddUIEventListener()
  34. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  35. self.uiBase:AddButtonEventListener(self.btnBack.button, function (buttton, params)
  36. self:UIClose()
  37. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBag, Enum.BagViewPageType.Chip)
  38. end)
  39. self.uiBase:AddButtonEventListener(self.btnDecompose.button, function (buttton, params)
  40. local list, num = self.controller:GetExpectDecomposeChips()
  41. if num <= 0 then
  42. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('ChipDecomposeTips04')
  43. return
  44. end
  45. local data = {list, true}
  46. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChipDecomposeTips,data)
  47. end)
  48. self.uiBase:AddButtonEventListener(self.btnOneKeyDecompose.button, function (buttton, params)
  49. local list, num = self.controller:GetExpectDecomposeChips(true)
  50. if num <= 0 then
  51. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay('ChipDecomposeTips04')
  52. return
  53. end
  54. local data = {list, false}
  55. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIChipDecomposeTips, data)
  56. end)
  57. end
  58. function UIChipRoomView:OnHide()
  59. end
  60. function UIChipRoomView:OnShow(data)
  61. self.controller:SetData(data)
  62. self:Init()
  63. end
  64. function UIChipRoomView:OnClose()
  65. end
  66. function UIChipRoomView:OnDispose()
  67. self.decompose.loopVerticalScrollRect:ClearCells()
  68. end
  69. function UIChipRoomView:RefreshShow(refreshData)
  70. if refreshData then
  71. self.controller:RefreshCanDecomposeChips()
  72. end
  73. local chipDatas = self.controller:GetCanDecomposeChips()
  74. local hasData = #chipDatas > 0
  75. self.decompose.noChips:SetActive(not hasData)
  76. CommonUtil.LoopGridViewEleCreate(self,
  77. self.decompose.loopVerticalScrollRect,
  78. self.decompose.content.gridLayoutGroup,
  79. chipDatas,
  80. 0,
  81. function(itemlua, idx)
  82. CommonUtil.UpdateItemPrefab(self, itemlua, chipDatas[idx + 1])
  83. end)
  84. end
  85. return UIChipRoomView