--[[
|
|
@ 道具选择面板
|
|
--]]
|
|
|
|
OptionalItemTips = OptionalItemTips or BaseClass(BaseView)
|
|
local OptionalItemTips = OptionalItemTips
|
|
|
|
function OptionalItemTips:__init()
|
|
self.base_file = "common"
|
|
self.layout_file = "OptionalItemTips"
|
|
self.layer_name = "Top"
|
|
|
|
self.destroy_imm = true
|
|
self.use_background = true
|
|
self.click_bg_toClose = true
|
|
self.is_set_zdepth = true
|
|
self.wait_for_hide = true
|
|
|
|
self.item_list = {}
|
|
|
|
self.load_callback = function()
|
|
self:LoadSuccess()
|
|
self:AdjustLayoutPos()
|
|
end
|
|
self.open_callback = function()
|
|
self:SetLabel()
|
|
self:SetContent()
|
|
end
|
|
|
|
self.destroy_callback = function ()
|
|
self:Remove()
|
|
end
|
|
end
|
|
|
|
function OptionalItemTips:Remove()
|
|
for i, v in ipairs(self.item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.item_list = {}
|
|
end
|
|
|
|
function OptionalItemTips:LoadSuccess()
|
|
|
|
self.layout,
|
|
self.bg,
|
|
self.content_parent
|
|
= self:GetChildTransforms(
|
|
{
|
|
"layout",
|
|
"layout/bg",
|
|
"layout/itemScrollView/Viewport/Content"
|
|
})
|
|
|
|
self.title,
|
|
self.label,
|
|
self.tips
|
|
= self:GetChildTexts(
|
|
{
|
|
"layout/title",
|
|
"layout/EmptyCon/text",
|
|
"layout/tips",
|
|
})
|
|
|
|
self.empty
|
|
= self:GetChildGameObjects(
|
|
{
|
|
"layout/EmptyCon",
|
|
})
|
|
|
|
self.item_mask
|
|
= self:GetChildImages(
|
|
{
|
|
"layout/itemScrollView/Viewport"
|
|
})
|
|
|
|
SetSizeDelta(self.transform, ScreenWidth, ScreenHeight)
|
|
end
|
|
|
|
function OptionalItemTips:SetLabel()
|
|
local str = WordManager:GetGoodsTypeStr(self.goods_type)
|
|
str = string.len(str) == 0 and "材料" or str
|
|
self.title.text = "点击选择"..(self.grade and ((self.grade - 1) .."阶") or "").. str
|
|
self.label.text = "背包中没有可选择的"..str
|
|
end
|
|
|
|
function OptionalItemTips:Open(x, y, goods_type, goods_list, callback, item_type,grade)
|
|
self.goods_type = goods_type
|
|
self.goods_list = goods_list
|
|
self.grade = grade
|
|
self.pos_x = x
|
|
self.pos_y = y
|
|
self.callback = callback
|
|
self.item_type = item_type or OptionalItem.Type.EQUIP
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function OptionalItemTips:SetContent()
|
|
|
|
if self.goods_list and TableSize(self.goods_list) > 0 then
|
|
self.empty:SetActive(false)
|
|
self:SetItem()
|
|
else
|
|
local str = WordManager:GetGoodsTypeStr(self.goods_type)
|
|
str = string.len(str) == 0 and "材料" or str
|
|
self.title.text = "背包中没有可选择的"..(self.grade and ((self.grade - 1) .."阶") or "")..str
|
|
self.empty:SetActive(true)
|
|
end
|
|
end
|
|
|
|
function OptionalItemTips:SetItem()
|
|
|
|
local function onSelectCallback(goods_vo)
|
|
if self.callback ~= nil then
|
|
self.callback(goods_vo)
|
|
end
|
|
self:Close()
|
|
end
|
|
local count = 0
|
|
table.sort( self.goods_list, function ( a,b )
|
|
return a.color > b.color
|
|
end )
|
|
for k, v in ipairs(self.goods_list) do
|
|
count = count + 1
|
|
self.item_list[count] = self.item_list[count] or OptionalItem.New(self.content_parent, nil, self.layer_name, self.item_type)
|
|
self.item_list[count]:SetData(v, onSelectCallback)
|
|
end
|
|
for i = count + 1, #self.item_list do
|
|
self.item_list[i]:SetVisible(false)
|
|
end
|
|
end
|
|
|
|
function OptionalItemTips:AdjustLayoutPos()
|
|
if self.pos_x and self.pos_y then
|
|
local layout_width = self.bg.sizeDelta.x
|
|
local layout_height = self.bg.sizeDelta.y
|
|
local x,y = ScreenToViewportPoint(self.pos_x,self.pos_y)
|
|
local iphone_x_offset = math.max(ClientConfig.iphone_x_offset_left,ClientConfig.iphone_x_offset_right)
|
|
if x + layout_width + 50 + iphone_x_offset * 2 > SrcScreenWidth then
|
|
x = SrcScreenWidth - layout_width - 90 - iphone_x_offset * 2
|
|
end
|
|
if y < layout_height + 50 then
|
|
y = layout_height + 50
|
|
end
|
|
self.layout.anchoredPosition = Vector2(x,y - ScreenHeight)
|
|
end
|
|
end
|