User:NXTBoy/Scripts/Timer

From Legacy Roblox Wiki
Jump to navigationJump to search
Timer = {}

function Timer:start()
	self.endTime = nil
	self.startTime = tick()
end

function Timer:stop()
	self.endTime = tick()
end

function Timer:getTime()
	return self.endTime and self.endTime - self.startTime or tick() - self.startTime
end

function Timer:resume()
	if self.endTime then
		self.startTime = self.startTime + tick() - self.endTime
		self.endTime = nil
	end
end

Timer.pause = Timer.stop

function Timer:clone()
	local copy = Timer.new()
	copy.startTime = self.startTime
	copy.endTime = self.endTime
	return copy
end

function Timer.new()
	return setmetatable({},{__index = Timer})
end

_G.Timer = Timer

Valid use:

local t = Timer.new()

t:start()
	foo()
t:stop()

print(t:getTime())
	
t:resume()
	foo()
	print(t:getTime())
t:stop()