2025-06-04 05:02:57 +08:00

76 lines
1.6 KiB
Plaintext

autoImport ("AreaTrigger_ExitPoint")
autoImport ("AreaTrigger_Mission")
autoImport ("AreaTrigger_Common")
autoImport ("AreaTrigger_Skill")
AreaTriggerManager = class("AreaTriggerManager")
function AreaTriggerManager:ctor()
self.atExitPoint = AreaTrigger_ExitPoint.new()
self.atMission = AreaTrigger_Mission.new()
self.atCommon = AreaTrigger_Common.new()
self.atSkill = AreaTrigger_Skill.CreateAsTable()
Game.AreaTrigger_ExitPoint = self.atExitPoint
Game.AreaTrigger_Mission = self.atMission
Game.AreaTrigger_Common = self.atCommon
Game.AreaTrigger_Skill = self.atSkill
self.ignoreCount = 0
self:SetIgnore(true)
end
function AreaTriggerManager:SetIgnore(ignore)
if ignore then
self.ignoreCount = self.ignoreCount + 1
else
self.ignoreCount = self.ignoreCount - 1
end
LuaLuancher.Instance.ignoreAreaTrigger = ignore
-- old way
-- Player.Me.ignoreAreaTrigger = ignore
end
function AreaTriggerManager:Launch()
if self.running then
return
end
self.running = true
self:SetIgnore(false)
self.atExitPoint:Launch()
self.atMission:Launch()
self.atCommon:Launch()
self.atSkill:Launch()
end
function AreaTriggerManager:Shutdown()
if not self.running then
return
end
self.running = false
self:SetIgnore(true)
self.atExitPoint:Shutdown()
self.atMission:Shutdown()
self.atCommon:Shutdown()
self.atSkill:Shutdown()
end
function AreaTriggerManager:Update(time, deltaTime)
if not self.running then
return
end
self.atMission:Update(time, deltaTime)
self.atCommon:Update(time, deltaTime)
self.atSkill:Update(time, deltaTime)
if 0 < self.ignoreCount then
return
end
self.atExitPoint:Update(time, deltaTime)
end