67 lines
1.9 KiB
Plaintext
67 lines
1.9 KiB
Plaintext
|
|
CameraAdditiveEffectManager = class("CameraAdditiveEffectManager")
|
|
|
|
function CameraAdditiveEffectManager.Me()
|
|
if nil == CameraAdditiveEffectManager.me then
|
|
CameraAdditiveEffectManager.me = CameraAdditiveEffectManager.new()
|
|
end
|
|
return CameraAdditiveEffectManager.me
|
|
end
|
|
|
|
-- static function begin
|
|
function CameraAdditiveEffectManager.CheckPriority(effect, priority)
|
|
local manager = FunctionCameraAdditiveEffect.Me()
|
|
local currentEffect = manager:GetEffect(effect.type)
|
|
return not (nil ~= currentEffect and currentEffect.running and nil ~= currentEffect.priority and currentEffect.priority > priority)
|
|
end
|
|
|
|
function CameraAdditiveEffectManager.CheckToken(effect, token)
|
|
return effect.running and effect.token == token
|
|
end
|
|
|
|
function CameraAdditiveEffectManager.StartEffect(effect, priority)
|
|
local manager = FunctionCameraAdditiveEffect.Me()
|
|
manager:EndEffectByType(effect.type)
|
|
manager:StartEffect(effect)
|
|
effect.priority = priority
|
|
if nil == effect.token then
|
|
effect.token = 1
|
|
else
|
|
effect.token = effect.token + 1
|
|
end
|
|
end
|
|
|
|
function CameraAdditiveEffectManager.EndEffect(effect)
|
|
local manager = FunctionCameraAdditiveEffect.Me()
|
|
manager:EndEffect(effect)
|
|
end
|
|
|
|
-- static function end
|
|
|
|
function CameraAdditiveEffectManager:ctor()
|
|
self.effectShake = CameraAdditiveEffectShake.new()
|
|
end
|
|
|
|
-- return token
|
|
function CameraAdditiveEffectManager:StartShake(range, duration, curve, priority)
|
|
priority = priority or 1
|
|
|
|
if not CameraAdditiveEffectManager.CheckPriority(self.effectShake, priority) then
|
|
return nil
|
|
end
|
|
|
|
CameraAdditiveEffectManager.EndEffect(self.effectShake)
|
|
self.effectShake:SetParams(range, duration, curve)
|
|
CameraAdditiveEffectManager.StartEffect(self.effectShake, priority)
|
|
return self.effectShake.token
|
|
end
|
|
|
|
function CameraAdditiveEffectManager:EndShake(token)
|
|
if not CameraAdditiveEffectManager.CheckToken(self.effectShake, token) then
|
|
return
|
|
end
|
|
CameraAdditiveEffectManager.EndEffect(self.effectShake)
|
|
end
|
|
|
|
|