GuildBadgeItem = GuildBadgeItem or BaseClass(BaseItem) local GuildBadgeItem = GuildBadgeItem function GuildBadgeItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "guild" self.layout_file = "GuildBadgeItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.item_width = 80 self.item_height = 80 self.model = GuildModel:getInstance() self:Load() end function GuildBadgeItem:Load_callback() local nodes = { "icon:obj:img", "tip_bg:obj", "tip_bg/tip:tmp", } self:GetChildren(nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function GuildBadgeItem:AddEvents( ) local function clickEvent(target) if target == self.icon_obj then if self.show_tips then self.tip_bg_obj:SetActive(true) if self.custom_mask_callback then local function callback() self.tip_bg_obj:SetActive(false) end self.custom_mask_callback(callback) end else if self.custom_badge_callback then self.custom_badge_callback(self.index, self.data.id) end end end end AddClickEvent(self.icon_obj, clickEvent) end function GuildBadgeItem:UpdateView( ) -- if self.data.is_empty then -- self.tip_tmp.text = "跨服开启后可获得" -- else local badge_cfg = Config.Guildbadge[self.data.id] self.tip_tmp.text = badge_cfg and Trim(badge_cfg.note) or "" -- end SetSizeDelta(self.tip_bg, 12 + (self.tip_tmp.preferredWidth > 200 and 200 or self.tip_tmp.preferredWidth), self.tip_tmp.preferredHeight + 27) -- lua_resM:setImageSprite(self, self.icon_img, "guildBadge_asset", self.data.is_empty and "guild_badge_empty" or "guild_badge_" .. self.data.id, true) lua_resM:setImageSprite(self, self.icon_img, "guildBadge_asset", "guild_badge_" .. self.data.id, true) self.item_width = self.icon.sizeDelta.x self.item_height = self.icon.sizeDelta.y self:SetIconSize() end function GuildBadgeItem:SetData( data, show_tips, custom_mask_callback, index, custom_badge_callback ) self.data = data self.show_tips = show_tips self.custom_mask_callback = custom_mask_callback self.index = index self.custom_badge_callback = custom_badge_callback if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GuildBadgeItem:SetIconSize(width, height) self.item_width = width or self.item_width self.item_height = height or self.item_height if self.is_loaded then SetSizeDelta(self.icon, self.item_width, self.item_height) self.icon_obj:SetActive(true) end end function GuildBadgeItem:__delete( ) end