Files
Endfield-Data/LuaScripts/LuaSystem/DummyNaviLayerSystem.lua
2026-01-31 21:42:01 +07:00

54 lines
1.4 KiB
Lua

local LuaSystemBase = require_ex('LuaSystem/LuaSystemBase')
DummyNaviLayerSystem = HL.Class('DummyNaviLayerSystem', LuaSystemBase.LuaSystemBase)
DummyNaviLayerSystem.m_dummyNaviLayers = HL.Field(HL.Table)
DummyNaviLayerSystem.DummyNaviLayerSystem = HL.Constructor() << function(self)
self.m_dummyNaviLayers = {}
self:RegisterMessage(MessageConst.ATTACH_DUMMY_NAVI_LAYER, function(key)
self:_AttachNaviDummyLayer(key)
end)
self:RegisterMessage(MessageConst.DETACH_DUMMY_NAVI_LAYER, function(key)
self:_DetachNaviDummyLayer(key)
end)
end
DummyNaviLayerSystem._AttachNaviDummyLayer = HL.Method(HL.String) << function(self, key)
if self.m_dummyNaviLayers[key] ~= nil then
local dummyLayer = self.m_dummyNaviLayers[key]
dummyLayer:NaviToThisGroup()
return
end
local dummyLayerObj = UIManager:CreateNaviDummLayerObj()
local dummyLayer = dummyLayerObj.transform:GetComponent("UISelectableNaviGroup")
self.m_dummyNaviLayers[key] = dummyLayer
dummyLayerObj.name = key
dummyLayer:NaviToThisGroup()
end
DummyNaviLayerSystem._DetachNaviDummyLayer = HL.Method(HL.String) << function(self, key)
if self.m_dummyNaviLayers[key] == nil then
return
end
local dummyLayer = self.m_dummyNaviLayers[key]
GameObject.DestroyImmediate(dummyLayer.gameObject)
self.m_dummyNaviLayers[key] = nil
end
HL.Commit(DummyNaviLayerSystem)
return DummyNaviLayerSystem