Stopwatch = class('Stopwatch')

function Stopwatch:ctor(pauseFunc,owner,id)
	self:ResetData(pauseFunc,owner,id)
end

function Stopwatch:ResetData(pauseFunc,owner,id)
	self.pauseFunc = pauseFunc
	self.owner = owner
	self.id = id
	self:Clear()
end

function Stopwatch:Start()
	self:Clear()
	self:Continue()
end

function Stopwatch:Continue()
	self.continueTime = ServerTime.CurServerTime()
	self.continueFrameCount = Time.frameCount
	self.isOn = true
end

function Stopwatch:Pause()
	self.isOn = false
	self.timeInterval = self.timeInterval + (ServerTime.CurServerTime() - self.continueTime)
	self.frameInterval = self.frameInterval + (Time.frameCount - self.continueFrameCount)
	if self.pauseFunc then
		self.pauseFunc(self.owner, self.timeInterval, self.frameInterval)
	end
end

function Stopwatch:Clear()
	self.isOn = false
	self.continueTime = 0
	self.continueFrameCount = 0
	self.timeInterval = 0
	self.frameInterval = 0
end