parent
aa5889fb12
commit
3ff653d33a
@ -0,0 +1,46 @@ |
||||
local Tinkr, Vision = ... |
||||
|
||||
local Timer = { |
||||
start_events = {}, |
||||
reset_events = {}, |
||||
time = 0, |
||||
label = nil |
||||
} |
||||
|
||||
Timer.__index = Timer |
||||
|
||||
-- Constructor |
||||
---@param label String |
||||
---@param start Table |
||||
---@param reset Table |
||||
---@return Timer |
||||
function Timer:New(label, start, reset) |
||||
local self = setmetatable({}, Timer) |
||||
self.start_events = start |
||||
self.reset_events = reset |
||||
self.time = 0 |
||||
self.label = label |
||||
|
||||
for _, event in pairs(self.start_events) do |
||||
Vision.EventManager:RegisterWoWEvent(event, function() |
||||
self.time = GetTime() |
||||
end) |
||||
end |
||||
|
||||
for _, event in pairs(self.reset_events) do |
||||
Vision.EventManager:RegisterWoWEvent(event, function() |
||||
self.time = 0 |
||||
end) |
||||
end |
||||
return self |
||||
end |
||||
|
||||
-- Start Timer |
||||
---@return number |
||||
function Timer:GetTime() |
||||
if self.time == 0 then |
||||
return 0 |
||||
else |
||||
return GetTime() - self.time |
||||
end |
||||
end |
Loading…
Reference in new issue