UIGuildChangeBadgeView.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. local UIGuildChangeBadgeView = require("UIGuild/UIGuildChangeBadgeView_Generate")
  2. function UIGuildChangeBadgeView:OnAwake(data)
  3. self.controller = require("UIGuild/UIGuildChangeBadgeCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIGuildChangeBadgeView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(UIEventNames.GUILD_CREATE_SUCCESS, self, self.OnGuildCreateSuccess)
  9. end
  10. function UIGuildChangeBadgeView:FillContent(data, uiBase)
  11. self.uiBase = uiBase
  12. local gameObject = self.uiBase:GetRoot()
  13. if gameObject ~= nil then
  14. self.gameObject = gameObject
  15. self.transform = gameObject.transform
  16. end
  17. self:InitGenerate(self.transform, data)
  18. self:Init()
  19. end
  20. function UIGuildChangeBadgeView:Init()
  21. self.changeList.loopVerticalScrollRect:StopMovement()
  22. self.changeList.loopVerticalScrollRect.content.anchoredPosition = Vector2.zero
  23. self:RefreshList()
  24. self:RefreshBtn()
  25. end
  26. function UIGuildChangeBadgeView:RemoveEventListener()
  27. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  28. end
  29. function UIGuildChangeBadgeView:AddUIEventListener()
  30. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  31. self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
  32. self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
  33. self.uiBase:AddButtonUniqueEventListener(self.usedBtn.button, self, self.OnClickUsedBtn)
  34. end
  35. function UIGuildChangeBadgeView:OnHide()
  36. end
  37. function UIGuildChangeBadgeView:OnShow(data)
  38. self.controller:SetData(data)
  39. end
  40. function UIGuildChangeBadgeView:OnClose()
  41. end
  42. function UIGuildChangeBadgeView:OnDispose()
  43. self.changeList.loopVerticalScrollRect:ClearCells()
  44. self.controller:OnDispose()
  45. end
  46. function UIGuildChangeBadgeView:OnGuildCreateSuccess()
  47. self:UIClose()
  48. end
  49. function UIGuildChangeBadgeView:OnClickCloseBtn()
  50. self.controller:OnExitGuildBadge(false)
  51. self:UIClose()
  52. end
  53. function UIGuildChangeBadgeView:OnClickUsedBtn()
  54. local curBadgeId = self.controller:GetCurBadgeId()
  55. local used = (self.controller:GetDefaultBadgeId() == curBadgeId)
  56. if used then return end
  57. self.controller:OnExitGuildBadge(true)
  58. self:UIClose()
  59. end
  60. function UIGuildChangeBadgeView:RefreshList()
  61. local badgeCfgs = self.controller:GetBadgeCfgs()
  62. local curBadgeId = self.controller:GetCurBadgeId()
  63. local moveTo = nil
  64. for index, badgeId in pairs(badgeCfgs) do
  65. if badgeId == curBadgeId then
  66. moveTo = index
  67. break
  68. end
  69. end
  70. CommonUtil.LoopGridViewEleCreateNew(self, self.changeList.loopVerticalScrollRect, nil,
  71. badgeCfgs, 0, self, self.RefreshBadgeItem, nil, nil, moveTo)
  72. end
  73. function UIGuildChangeBadgeView:RefreshBadgeItem(itemLua, idx, itemData)
  74. if not itemLua or not itemData then return end
  75. itemLua.badge.image.sprite = nil
  76. itemLua.badge.image.enabled = false
  77. if itemData.Pic and itemData.Pic ~= '' then
  78. CommonUtil.LoadIcon(self, itemData.Pic, function (sprite)
  79. itemLua.badge.image.sprite = sprite
  80. itemLua.badge.image.enabled = true
  81. end)
  82. end
  83. itemLua.used:SetActive(self.controller:GetDefaultBadgeId() == itemData.Id)
  84. itemLua.selected:SetActive(self.controller:GetCurBadgeId() == itemData.Id)
  85. self.uiBase:AddButtonUniqueEventListener(itemLua.button, self, self.OnClickBadgeItem, itemData)
  86. end
  87. function UIGuildChangeBadgeView:OnClickBadgeItem(btn, param)
  88. local itemData = param[0]
  89. if not itemData then return end
  90. local isChanged = self.controller:SetCurBadgeId(itemData.Id)
  91. if not isChanged then return end
  92. self.changeList.loopVerticalScrollRect:RefreshCells()
  93. self:RefreshBtn()
  94. end
  95. function UIGuildChangeBadgeView:RefreshBtn()
  96. local curBadgeId = self.controller:GetCurBadgeId()
  97. -- local unlocked = true
  98. local used = (self.controller:GetDefaultBadgeId() == curBadgeId)
  99. self.usedBtn.button.interactable = (not used);
  100. if used then
  101. self.usedBtn.text.text.text = I18N.T("BtnUsing"); --使用中
  102. else
  103. self.usedBtn.text.text.text = I18N.T("BtnChange"); --更换
  104. end
  105. end
  106. return UIGuildChangeBadgeView