Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- timer = {}
- timer.timers = {}
- local _timer = {}
- function timer.new(name,time,callback,repeating)
- local t = {}
- repeating = repeating or false
- t.name = name
- t.time = time
- t.passed = 0
- t.callback = callback
- t.repeating = repeating
- t.running = false
- setmetatable(t,{__index=_timer})
- return t
- end
- function timer.add(timerObj)
- timer.timers[timerObj.name] = timerObj
- end
- function timer.remove(timerName)
- timer.timers[timerName] = nil
- end
- function timer.get(timerName)
- return timer.timers[timerName]
- end
- function timer.update(dt)
- local ticked = {}
- for k,v in pairs(timer.timers) do
- if(v.running) then if(v:update(dt)) then ticked[v.name]=true end end
- end
- return ticked
- end
- function _timer:start()
- self.passed = 0
- self.running = true
- end
- function _timer:pause()
- self.running = false
- end
- function _timer:resume()
- self.running = true
- end
- function _timer:stop()
- self.passed = 0
- self.running = false
- end
- function _timer:set(val)
- self.passed = val
- end
- function _timer:setCap(val,reset)
- self.time = val
- if(reset) then self.passed = 0 end
- end
- function _timer:getLeft()
- return self.time-self.passed
- end
- function _timer:isRunning()
- return self.running
- end
- function _timer:update(dt)
- self.passed = self.passed + dt
- local tick = false
- if(self.passed >= self.time) then
- tick = true
- if(self.callback) then self.callback() end
- self.passed = self.passed - self.time
- if(not self.repeating) then self.running = false end
- end
- return tick
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement