summaryrefslogtreecommitdiffhomepage
path: root/not/Timer.lua
blob: 3e45b1136688685bbed3fde98f2febac42bcf22a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Timer = require "not.Object":extends()

function Timer:new (trigger, delay)
	self.trigger = trigger
	self.delay = delay
	self.left = 0
	self.active = false
	self.restart = false
end

function Timer:start ()
	self.left = self.delay
	self.active = true
end

function Timer:update (dt)
	if self.active then
		if self.left < 0 then
			self.trigger:emit()
			self.active = false
			if self.restart then
				self:start()
			end
		else
			self.left = self.left - dt
		end
	end
end

return Timer