Make Timer.add[Periodic]() return timer handle. Export Timer.handle

This commit is contained in:
Matthias Richter 2012-03-31 15:05:07 +02:00
parent 7c257c891d
commit 42c3b9b47e

View File

@ -41,18 +41,15 @@ local function update(dt)
end
local function add(delay, func)
assert(not functions[func], ("Function already scheduled to run in %.2fs"):format(functions[func]))
assert(not functions[func], "Function already scheduled to run.")
functions[func] = delay
end
local function cancel(func)
functions[func] = nil
return func
end
local function addPeriodic(delay, func, count)
local count = count or math.huge -- exploit below: math.huge - 1 = math.huge
add(delay, function(f)
return add(delay, function(f)
if func(func) == false then return end
count = count - 1
if count > 0 then
@ -61,6 +58,10 @@ local function addPeriodic(delay, func, count)
end)
end
local function cancel(func)
functions[func] = nil
end
local function clear()
functions = {}
end
@ -86,6 +87,7 @@ return {
update = update,
add = add,
addPeriodic = addPeriodic,
cancel = cancel,
clear = clear,
Interpolator = Interpolator,
Oscillator = Oscillator