PGRData/Script/matrix/xentity/xguilddorm/base/XGDComponentManager.lua

48 lines
1.1 KiB
Lua
Raw Normal View History

2024-09-01 20:49:41 +00:00
---@class XGDComponentManager
local XGDComponentManager = XClass(nil, "XGDComponentManager")
function XGDComponentManager:Ctor()
-- 组件 XGDComponet
self.Componets = {}
self.ComponetDic = {}
end
function XGDComponentManager:AddComponent(compoent, pos)
if pos == nil then
table.insert(self.Componets, compoent)
else
table.insert(self.Componets, pos, compoent)
end
self.ComponetDic[compoent.__cname] = compoent
compoent:Init()
end
function XGDComponentManager:GetComponent(className)
return self.ComponetDic[className]
end
function XGDComponentManager:GetComponents()
return self.Componets
end
function XGDComponentManager:Update(dt)
for _, component in ipairs(self.Componets) do
if component.Update then
if component:CheckCanUpdate(dt) then
component:Update(dt)
end
end
end
end
function XGDComponentManager:Dispose()
for _, com in ipairs(self.Componets) do
com:Dispose()
end
self.Componets = nil
self.ComponetDic = nil
self.Componets = {}
self.ComponetDic = {}
end
return XGDComponentManager