CapsuleEggWarehouseView = CapsuleEggWarehouseView or BaseClass(BaseItem)
|
|
local CapsuleEggWarehouseView = CapsuleEggWarehouseView
|
|
|
|
function CapsuleEggWarehouseView:__init()
|
|
self.base_file = "capsuleEgg"
|
|
self.layout_file = "CapsuleEggWarehouseView"
|
|
self.model = CapsuleEggModel:getInstance()
|
|
|
|
self.bag_item_list = {} --背包物品列表
|
|
self.column_num = 9 --一行几个图标
|
|
self.defult_slot = 45 --默认最少生成空格数
|
|
self.warehouse_item_count = 0 --仓库物品数量
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function CapsuleEggWarehouseView:Load_callback()
|
|
self.nodes = {
|
|
"ScrollView", "ScrollView/Viewport/Content", "ScrollView/Viewport/Content/item_con",
|
|
"takeOutBtn:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
|
|
self.loop_mgr = LoopScrowViewMgr.New()
|
|
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
|
|
end
|
|
end
|
|
|
|
function CapsuleEggWarehouseView:AddEvents( )
|
|
local on_click = function ( click_obj )
|
|
if self.takeOutBtn_obj == click_obj then --一键取出
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17009)
|
|
end
|
|
end
|
|
AddClickEvent(self.takeOutBtn_obj, on_click)
|
|
|
|
--取出之后的处理
|
|
local function on_take_all()
|
|
if self.is_loaded then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
self:BindEvent(self.model,CapsuleEggConst.TAKE_OUT_ALL_REWARD,on_take_all)
|
|
|
|
--刷新仓库界面
|
|
local function on_update_warehouse_view()
|
|
if self.is_loaded then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
self:BindEvent(self.model,CapsuleEggConst.UPDATE_WAREHOUSE_VIEW,on_update_warehouse_view)
|
|
end
|
|
|
|
function CapsuleEggWarehouseView:UpdateView( )
|
|
self.warehouse_data = self.model:GetWarehouseData()
|
|
self.warehouse_item_count = #self.warehouse_data
|
|
|
|
local total_num = 0
|
|
if self.warehouse_item_count > self.defult_slot then
|
|
total_num = self.warehouse_item_count+(9-self.warehouse_item_count%9)
|
|
else
|
|
total_num = self.defult_slot
|
|
end
|
|
for k = 1,self.defult_slot do
|
|
local item = self.bag_item_list[k]
|
|
if item == nil then
|
|
item = CapsuleEggWarehouseItem.New(self.item_con,nil,self.layer_name)
|
|
item:SetVisible(false,true)
|
|
self.bag_item_list[k] = item
|
|
end
|
|
end
|
|
self.loop_mgr:Init(self.ScrollView,self.Content,self.column_num,84+17,84+6,function(item,index,realIndex )
|
|
self:OnInitializeItem(item,index,realIndex )
|
|
end)
|
|
self.loop_mgr:InitChildren(self.bag_item_list, total_num)
|
|
self.loop_mgr:RestToBeginning()
|
|
self.loop_mgr:ForceUpdateCurrentItems()
|
|
self.loop_mgr:SetContentSizeData()
|
|
end
|
|
|
|
function CapsuleEggWarehouseView:OnInitializeItem(item,index,realIndex)
|
|
if item and realIndex > 0 and realIndex <= self.warehouse_item_count then
|
|
item:SetData(self.warehouse_data[realIndex],realIndex)
|
|
else
|
|
item:SetData(nil)
|
|
end
|
|
end
|
|
|
|
function CapsuleEggWarehouseView:SetData( )
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function CapsuleEggWarehouseView:__delete( )
|
|
for k,v in pairs(self.bag_item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.bag_item_list = {}
|
|
|
|
if self.loop_mgr then
|
|
self.loop_mgr:DeleteMe()
|
|
self.loop_mgr = nil
|
|
end
|
|
|
|
end
|