源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

113 lines
3.1 KiB

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