mirror of
https://github.com/sbrl/Minetest-WorldEditAdditions.git
synced 2024-12-23 12:05:01 +00:00
Starbeamrainbowlabs
1ae48f3a52
Also update //for to make use of this new functionality. //subdivide is still on the todo list. The new functionality works by adding the new property `async = false` to command definition tables registered via wea_core.register_command()`. When `true`, if and only if the command's MAIN FUNC ONLY returns no values at all then it will consider an async operation to be in progress. This delays `run_command` from emitting the `post-execute` event on `wea_core`. Additionally, all async commands have a callback function injected as the first argument to their main `func` (ref main cmd definition table). This callback function -- if no arguments are returned by the main `func` -- must be called once the async operation is complete with same args you would normally return from `func` -- that is `success, result_message`. These will then be handled as normal and sent to the player as appropriate, as well as finally emitting the `post-execute` event. BUG: There is a potential issue in this implementation, in that if i.e. `minetest.after()` is used to delay async execution then this will break out of the `xpcall()` protection in place to prevent crashes. To this end, if you implement an async function you need to be very careful, and do a manual `wea_core.safe_function()` call yourself! |
||
---|---|---|
.. | ||
extra | ||
measure | ||
meta | ||
nodes | ||
selectors | ||
test | ||
wireframe | ||
bonemeal.lua | ||
convolve.lua | ||
copy.lua | ||
count.lua | ||
dome.lua | ||
ellipsoid.lua | ||
ellipsoid2.lua | ||
erode.lua | ||
fillcaves.lua | ||
floodfill.lua | ||
forest.lua | ||
hollow.lua | ||
layers.lua | ||
line.lua | ||
maze.lua | ||
metaball.lua | ||
move.lua | ||
noise2d.lua | ||
orient.lua | ||
overlay.lua | ||
replacemix.lua | ||
revolve.lua | ||
rotate.lua | ||
scale.lua | ||
sculpt.lua | ||
set.lua | ||
spiral2.lua | ||
spline.lua | ||
torus.lua | ||
uasparse.lua | ||
walls.lua |