2022-04-12 23:28:25 +00:00
|
|
|
If you ever want to run a piece of code on a timed interval, or want to wait
|
|
|
|
a few seconds, you don't have to rely on timing tricks, as Hilbish has a
|
|
|
|
timer API to set intervals and timeouts.
|
|
|
|
|
|
|
|
These are the simple functions `hilbish.interval` and `hilbish.timeout` (doc
|
|
|
|
accessible with `doc hilbish`). But if you want slightly more control over
|
|
|
|
them, there is the `hilbish.timers` interface. It allows you to get
|
|
|
|
a timer via ID.
|
|
|
|
|
|
|
|
# Timer Interface
|
|
|
|
## Functions
|
|
|
|
- `get(id)` -> timer: get a timer via its id
|
|
|
|
- `create(type, ms, callback)` -> timer: creates a timer, adding it to the timer pool.
|
|
|
|
`type` is the type of timer it will be. 0 is an interval, 1 is a timeout.
|
|
|
|
`ms` is the time it will run for in seconds. callback is the function called
|
|
|
|
when the timer is triggered.
|
|
|
|
|
|
|
|
# Timer Object
|
2022-05-28 23:03:44 +00:00
|
|
|
All those previously mentioned functions return a `timer` object, to which
|
|
|
|
you can stop and start a timer again.
|
|
|
|
|
|
|
|
An example of usage:
|
|
|
|
local t = hilbish.timers.create(1, 5000, function()
|
|
|
|
print 'hello!'
|
|
|
|
end)
|
|
|
|
|
|
|
|
t:stop()
|
|
|
|
print(t.running, t.duration, t.type)
|
|
|
|
t:start()
|
2022-04-12 23:28:25 +00:00
|
|
|
|
|
|
|
## Properties
|
|
|
|
- `duration`: amount of time the timer runs for in milliseconds
|
|
|
|
- `running`: whether the timer is running or not
|
|
|
|
- `type`: the type of timer (0 is interval, 1 is timeout)
|
|
|
|
|
|
|
|
## Functions
|
|
|
|
- `stop()`: stops the timer. returns an error if it's already stopped
|
|
|
|
- `start()`: starts the timer. returns an error if it's already started
|