源战役客户端
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

91 行
2.9 KiB

  1. GuildBadgeItem = GuildBadgeItem or BaseClass(BaseItem)
  2. local GuildBadgeItem = GuildBadgeItem
  3. function GuildBadgeItem:__init(parent_wnd,prefab_asset,layer_name)
  4. self.base_file = "guild"
  5. self.layout_file = "GuildBadgeItem"
  6. self.parent_wnd = parent_wnd
  7. self.layer_name = layer_name
  8. self.item_width = 80
  9. self.item_height = 80
  10. self.model = GuildModel:getInstance()
  11. self:Load()
  12. end
  13. function GuildBadgeItem:Load_callback()
  14. local nodes = {
  15. "icon:obj:img",
  16. "tip_bg:obj",
  17. "tip_bg/tip:tmp",
  18. }
  19. self:GetChildren(nodes)
  20. self:AddEvents()
  21. if self.need_refreshData then
  22. self:UpdateView()
  23. end
  24. end
  25. function GuildBadgeItem:AddEvents( )
  26. local function clickEvent(target)
  27. if target == self.icon_obj then
  28. if self.show_tips then
  29. self.tip_bg_obj:SetActive(true)
  30. if self.custom_mask_callback then
  31. local function callback()
  32. self.tip_bg_obj:SetActive(false)
  33. end
  34. self.custom_mask_callback(callback)
  35. end
  36. else
  37. if self.custom_badge_callback then
  38. self.custom_badge_callback(self.index, self.data.id)
  39. end
  40. end
  41. end
  42. end
  43. AddClickEvent(self.icon_obj, clickEvent)
  44. end
  45. function GuildBadgeItem:UpdateView( )
  46. -- if self.data.is_empty then
  47. -- self.tip_tmp.text = "跨服开启后可获得"
  48. -- else
  49. local badge_cfg = Config.Guildbadge[self.data.id]
  50. self.tip_tmp.text = badge_cfg and Trim(badge_cfg.note) or ""
  51. -- end
  52. SetSizeDelta(self.tip_bg, 12 + (self.tip_tmp.preferredWidth > 200 and 200 or self.tip_tmp.preferredWidth), self.tip_tmp.preferredHeight + 27)
  53. -- lua_resM:setImageSprite(self, self.icon_img, "guildBadge_asset", self.data.is_empty and "guild_badge_empty" or "guild_badge_" .. self.data.id, true)
  54. lua_resM:setImageSprite(self, self.icon_img, "guildBadge_asset", "guild_badge_" .. self.data.id, true)
  55. self.item_width = self.icon.sizeDelta.x
  56. self.item_height = self.icon.sizeDelta.y
  57. self:SetIconSize()
  58. end
  59. function GuildBadgeItem:SetData( data, show_tips, custom_mask_callback, index, custom_badge_callback )
  60. self.data = data
  61. self.show_tips = show_tips
  62. self.custom_mask_callback = custom_mask_callback
  63. self.index = index
  64. self.custom_badge_callback = custom_badge_callback
  65. if self.is_loaded then
  66. self.need_refreshData = false
  67. self:UpdateView()
  68. else
  69. self.need_refreshData = true
  70. end
  71. end
  72. function GuildBadgeItem:SetIconSize(width, height)
  73. self.item_width = width or self.item_width
  74. self.item_height = height or self.item_height
  75. if self.is_loaded then
  76. SetSizeDelta(self.icon, self.item_width, self.item_height)
  77. self.icon_obj:SetActive(true)
  78. end
  79. end
  80. function GuildBadgeItem:__delete( )
  81. end