Refonte pour utiliser le systeme de GUI #112
2 changed files with 43 additions and 0 deletions
14
sonic-radiance.love/birb/classes/time/func.lua
Normal file
14
sonic-radiance.love/birb/classes/time/func.lua
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
local Timer = require "birb.classes.time.timer"
|
||||||
|
local TimedFunction = Timer:extend()
|
||||||
|
|
||||||
|
function TimedFunction:new(actor, name, func, t)
|
||||||
|
TimedFunction.super.new(self, actor, name, t)
|
||||||
|
self.func = func
|
||||||
|
end
|
||||||
|
|
||||||
|
function TimedFunction:finish()
|
||||||
|
self.actor.funcs[self.name] = nil
|
||||||
|
self.func()
|
||||||
|
end
|
||||||
|
|
||||||
|
return TimedFunction
|
|
@ -27,6 +27,7 @@ local TweenManager = Object:extend()
|
||||||
|
|
||||||
local tween = require "birb.libs.tween"
|
local tween = require "birb.libs.tween"
|
||||||
local Timer = require "birb.classes.time.timer"
|
local Timer = require "birb.classes.time.timer"
|
||||||
|
local TimedFunction = require "birb.classes.time.func"
|
||||||
|
|
||||||
function TweenManager:new(subject)
|
function TweenManager:new(subject)
|
||||||
self.subject = subject
|
self.subject = subject
|
||||||
|
@ -36,6 +37,7 @@ function TweenManager:new(subject)
|
||||||
self.switches = {}
|
self.switches = {}
|
||||||
|
|
||||||
self.timers = {}
|
self.timers = {}
|
||||||
|
self.funcs = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
function TweenManager:newTween(start, duration, target, easing)
|
function TweenManager:newTween(start, duration, target, easing)
|
||||||
|
@ -84,6 +86,29 @@ function TweenManager:removeTimer(name)
|
||||||
self.timers[name] = nil
|
self.timers[name] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- FUNCTION FUNCTIONS
|
||||||
|
-- Help to get functions
|
||||||
|
|
||||||
|
function TweenManager:newFunc(start, name, func)
|
||||||
|
self.funcs[name] = TimedFunction(self, name, func, start)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TweenManager:delayFunc(time, name, absolute)
|
||||||
|
if (self.funcs[name] ~= nil) then
|
||||||
|
self.funcs[name]:delay(time, absolute)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TweenManager:getFuncInfo(name)
|
||||||
|
if (self.funcs[name] ~= nil) then
|
||||||
|
return self.funcs[name]:getInfo()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TweenManager:removeFunc(name)
|
||||||
|
self.funcs[name] = nil
|
||||||
|
end
|
||||||
|
|
||||||
-- SWITCH FUNCTIONS
|
-- SWITCH FUNCTIONS
|
||||||
-- Help to handle switches
|
-- Help to handle switches
|
||||||
|
|
||||||
|
@ -129,6 +154,10 @@ function TweenManager:update(dt)
|
||||||
timer:update(dt)
|
timer:update(dt)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
for k, func in pairs(self.funcs) do
|
||||||
|
func:update(dt)
|
||||||
|
end
|
||||||
|
|
||||||
self:clearEndedTweens()
|
self:clearEndedTweens()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue