133 lines
2.9 KiB
Lua
133 lines
2.9 KiB
Lua
|
|
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.LiquidPoolScanUI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl = HL.Class('LiquidPoolScanUICtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
|
|
}
|
|
|
|
|
|
LiquidPoolScanUICtrl.m_liquidPoolObjDict = HL.Field(HL.Table)
|
|
|
|
|
|
LiquidPoolScanUICtrl.m_liquidPoolObjPool = HL.Field(HL.Table)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
self.m_liquidPoolObjDict = {}
|
|
self.m_liquidPoolObjPool = {}
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl.OnClose = HL.Override() << function(self)
|
|
if self.m_liquidPoolObjDict ~= nil then
|
|
for _, v in pairs(self.m_liquidPoolObjDict) do
|
|
v.liquidPool:Clear()
|
|
GameObject.Destroy(v.liquidPool.gameObject)
|
|
end
|
|
self.m_liquidPoolObjDict = nil
|
|
end
|
|
|
|
if self.m_liquidPoolObjPool ~= nil then
|
|
for _, v in ipairs(self.m_liquidPoolObjPool) do
|
|
GameObject.Destroy(v.liquidPool.gameObject)
|
|
end
|
|
self.m_liquidPoolObjPool = nil
|
|
end
|
|
end
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl._OnAddLiquidPoolUI = HL.StaticMethod(HL.Any) << function(args)
|
|
local ctrl = LiquidPoolScanUICtrl.AutoOpen(PANEL_ID, args, false)
|
|
local waterVolumeId, x, y, z = unpack(args)
|
|
ctrl:_AddLiquidPool(waterVolumeId, x, y, z)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl._AddLiquidPool = HL.Method(HL.Number, HL.Number, HL.Number, HL.Number) << function(self, waterVolumeId, x, y, z)
|
|
if self.m_liquidPoolObjDict[waterVolumeId] == nil then
|
|
self.m_liquidPoolObjDict[waterVolumeId] = self:_CreateLiquidPool()
|
|
end
|
|
|
|
self.m_liquidPoolObjDict[waterVolumeId].rectTransform.gameObject:SetActive(true)
|
|
local liquidPool = self.m_liquidPoolObjDict[waterVolumeId].liquidPool
|
|
|
|
liquidPool:SetWaterInfo(waterVolumeId, x, y, z)
|
|
end
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl._CreateLiquidPool = HL.Method().Return(HL.Table) << function(self)
|
|
if self.m_liquidPoolObjPool ~= nil and #self.m_liquidPoolObjPool > 0 then
|
|
local result = self.m_liquidPoolObjPool[#self.m_liquidPoolObjPool]
|
|
table.remove(self.m_liquidPoolObjPool, #self.m_liquidPoolObjPool)
|
|
return result
|
|
else
|
|
local obj = self:_CreateWorldGameObject(self.view.config.LIQUID_POOL_ITEM)
|
|
local result = Utils.wrapLuaNode(obj)
|
|
return result
|
|
end
|
|
end
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl._OnRemoveLiquidPoolUI = HL.StaticMethod(HL.Any) << function(args)
|
|
local ctrl = LiquidPoolScanUICtrl.AutoOpen(PANEL_ID, args, false)
|
|
local entity = unpack(args)
|
|
if ctrl.m_liquidPoolObjDict[entity] ~= nil then
|
|
local cell = ctrl.m_liquidPoolObjDict[entity]
|
|
cell.liquidPool:Clear()
|
|
cell.rectTransform.gameObject:SetActive(false)
|
|
table.insert(ctrl.m_liquidPoolObjPool, cell)
|
|
ctrl.m_liquidPoolObjDict[entity] = nil
|
|
end
|
|
end
|
|
|
|
|
|
|
|
LiquidPoolScanUICtrl._OnUpdateLiquidPoolUI = HL.StaticMethod(HL.Any) << function(args)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
HL.Commit(LiquidPoolScanUICtrl)
|