ChatDressItem = ChatDressItem or BaseClass(BaseItem)
|
|
|
|
function ChatDressItem:__init(parent)
|
|
self.base_file = "chatDress"
|
|
self.layout_file = "ChatDressItem"
|
|
self.data = nil
|
|
self.is_selected = false
|
|
self.index = 0
|
|
self.event_list = {}
|
|
self.prop_item_list = {}
|
|
self.model = ChatDressModel:getInstance()
|
|
|
|
self:Load()
|
|
|
|
|
|
end
|
|
|
|
function ChatDressItem:Load_callback()
|
|
self.nodes = {
|
|
"select_image:obj",
|
|
"click_con:obj",
|
|
"mark_image:obj",
|
|
"lock_image:obj",
|
|
"wear_image:obj",
|
|
"active_image:obj",
|
|
"head:img:obj",
|
|
"red_image:obj",
|
|
"name_text:tmp",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
self:InitEvent()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
|
|
if self.need_reselect then
|
|
self:SetSelect(self.select_id)
|
|
end
|
|
end
|
|
|
|
function ChatDressItem:InitEvent()
|
|
local function onClick(target)
|
|
self.call_back(self.index, self.data)
|
|
end
|
|
AddClickEvent(self.click_con_obj, onClick)
|
|
end
|
|
|
|
-- 装扮信息
|
|
function ChatDressItem:SetData(index, data, call_back)
|
|
self.index = index
|
|
self.data = data
|
|
self.call_back = call_back
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function ChatDressItem:UpdateView( )
|
|
local data = self.data
|
|
local type_id = data.dress_id
|
|
local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
|
|
local goods_icon = goods_basic.goods_icon
|
|
type_id = tonumber(type_id)
|
|
local goods_name = GoodsModel:getInstance():getGoodsName(type_id, false)
|
|
self.name_text_tmp.text = goods_name
|
|
if Config.ConfigGoodsByCareer[type_id] then
|
|
goods_icon = Config.ConfigGoodsByCareer[type_id][RoleManager.Instance.mainRoleInfo.career]
|
|
end
|
|
local set_img_cb = function ( )
|
|
local new_width = GetSizeDeltaX(self.head_img.transform) * 0.95
|
|
local new_height = GetSizeDeltaY(self.head_img.transform) * 0.95
|
|
SetSizeDelta(self.head_img.transform, new_width, new_height)
|
|
end
|
|
lua_resM:setOutsideImageSprite(self, self.head_img, GameResPath.GetGoodsIcon(goods_icon), true, set_img_cb)
|
|
self.wear_image_obj:SetActive(self.model:GetCurUseDressId(data.dress_type) == data.dress_id)
|
|
self.lock_image_obj:SetActive(false)
|
|
local can_active = data.can_active and true or false
|
|
self.active_image_obj:SetActive(can_active)
|
|
self.mark_image_obj:SetActive(not data.is_active and not data.can_active)
|
|
end
|
|
|
|
--
|
|
function ChatDressItem:ClickFunc()
|
|
self:SetSelect(true)
|
|
end
|
|
|
|
function ChatDressItem:GetActiveState( )
|
|
local data = self.data
|
|
if data.is_active and not data.can_active then
|
|
return ChatDressModel.AcitiveState.Actived
|
|
elseif not data.is_active and not data.can_active then
|
|
return ChatDressModel.AcitiveState.Locked
|
|
elseif not data.is_active and data.can_active then
|
|
return ChatDressModel.AcitiveState.CanActive
|
|
end
|
|
end
|
|
|
|
function ChatDressItem:GetId( )
|
|
return self.data.dress_id
|
|
end
|
|
|
|
-- 选择情况
|
|
function ChatDressItem:SetSelect(index)
|
|
self.select_id = index
|
|
if self.is_loaded then
|
|
self.need_reselect = false
|
|
self.select_image_obj:SetActive(self.select_id == self.index)
|
|
else
|
|
self.need_reselect = true
|
|
end
|
|
end
|
|
|
|
function ChatDressItem:__delete()
|
|
for k, v in pairs(self.event_list) do
|
|
self.model:UnBind(v)
|
|
v = nil
|
|
end
|
|
self.event_list = {}
|
|
|
|
if self.bag_change_event_id then
|
|
GoodsModel:getInstance():UnBind(self.bag_change_event_id)
|
|
self.bag_change_event_id = nil
|
|
end
|
|
|
|
if #self.prop_item_list > 0 then
|
|
for k, v in pairs(self.prop_item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
function ChatDressItem:SetRedPoint()
|
|
-- self.red_point:SetActive(isTrue)----红点先去除
|
|
end
|