Files
timer/ReadMe.md
T
2026-09-22 15:52:59 -06:00

56 lines
1.7 KiB
Markdown

# timer
Easy timers in Lua. Spiritual successor to kikito's cron.lua
Public domain! Who needs an IP anyhow?
## Usage
Can be *mostly* used as a drop-in replacement for [kikito's cron.lua](https://github.com/kikito/cron.lua),
but that misses the biggest benefit, which is the timer library itself managing
timers, including discarding expired timers:
```lua
timer.after(time, function, ...) -- runs once after time
timer.every(time, function, ...) -- runs repeatedly, every time
timer.update(delta) -- increment, run functions, discard expired..
```
A timer can be excluded from `timer.update`, in which case it must be manually
updated:
```lua
local my_timer = timer.every(time, function, ...)
my_timer.manual = true
my_timer:update(delta)
```
`timer.update` returns a table of expired timers. Example:
```lua
local my_timer = timer.after(time, function, ...)
local expired = timer.update(delta)
if expired[my_timer] then
-- idk, whatever you needed
end
```
Timers can have their time set to a new value with `my_timer:reset(time)`. If
nothing is passed, they will be set to `0`.
---
Incompatibilities / Changes from kikito's cron.lua:
- Number values are not checked or restricted.
- Different error message for callback not being callable.
- If a one-time timer is run by `timer.update`, it will *no longer be updated*
by `timer.update`, even if reset.
## Releases
GitHub unpublishes my releases frequently, check tags to find them!
## Ideas / Tasks
- [ ] Make an import/export format and add save/load functions - resumable timers.
- [ ] Make it possible to save/load with a unix timestamp. (Dangerous.)
- [ ] Make an access function `get_run_time`
- [ ] Make functions optional