coroutine.lua¶
This script contains convenience wrapper around creation and resuming of coroutines and yielding proper sleeping times to widelands. These functions are more specially tailored to widelands and take a lot of the awkwardness out of using coroutines directly.
Note
Do not use these functions for multiplayer scripting (scenarios and winconditions) in combination with any functions in ui.lua
To make these functions available include this file at the beginning of a script via:
include "scripting/coroutine.lua"
- run(func[, ...])¶
Start to run a function as a coroutine and hand it over to widelands for periodical resuming. All arguments passed to this function are given to the coroutine when it is first run.
- Parameters
func – Lua function to launch as a coroutine
- Returns
nil
- sleep(time)¶
This must be called inside a coroutine. This will put the coroutine to sleep. Widelands will wake it after the given amount of time.
- Parameters
time (
integer
) – time to sleep in ms- Returns
nil
- wake_me(at)¶
This must be called inside a coroutine. This will put the coroutine to sleep. Widelands will wake it at the absolute time given. If this time is already in the past (that is at <
wl.Game.time()
), the coroutine will be woken atwl.Game.time()
instead.- Parameters
at (
integer
) – when to wake this coroutine- Returns
nil