From 37b64ff616df3475e228d6beb3727de2afd2b6c2 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 27 Mar 2012 00:37:31 +0300 Subject: [PATCH] Add minetest.after(time, func) --- builtin/builtin.lua | 24 ++++++++++++++++++++++ doc/lua_api.txt | 13 +++++++----- games/minimal/mods/experimental/init.lua | 26 +++--------------------- 3 files changed, 35 insertions(+), 28 deletions(-) diff --git a/builtin/builtin.lua b/builtin/builtin.lua index 9b2bed33..4c74b1c5 100644 --- a/builtin/builtin.lua +++ b/builtin/builtin.lua @@ -795,6 +795,30 @@ minetest.registered_on_newplayers, minetest.register_on_newplayer = make_registr minetest.registered_on_dieplayers, minetest.register_on_dieplayer = make_registration() minetest.registered_on_respawnplayers, minetest.register_on_respawnplayer = make_registration() +-- +-- Misc. API functions +-- + +minetest.timers_to_add = {} +minetest.timers = {} +minetest.register_globalstep(function(dtime) + for indes, timer in ipairs(minetest.timers_to_add) do + table.insert(minetest.timers, timer) + end + minetest.timers_to_add = {} + for index, timer in ipairs(minetest.timers) do + timer.time = timer.time - dtime + if timer.time <= 0 then + timer.func() + minetest.timers[index] = nil + end + end +end) + +function minetest.after(time, func) + table.insert(minetest.timers_to_add, {time=time, func=func}) +end + -- -- Set random seed -- diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 6d007114..bfde0a87 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -425,6 +425,12 @@ minetest.get_modpath(modname) -> eg. "/home/user/.minetest/usermods/modname" minetest.get_worldpath(modname) -> eg. "/home/user/.minetest/world" ^ Useful for storing custom data +minetest.debug(line) +^ Goes to dstream +minetest.log(line) +minetest.log(loglevel, line) +^ loglevel one of "error", "action", "info", "verbose" + minetest.register_entity(name, prototype table) minetest.register_abm(abm definition) minetest.register_node(name, node definition) @@ -461,11 +467,8 @@ minetest.sound_play(spec, parameters) -> handle ^ parameters = sound parameter table minetest.sound_stop(handle) -minetest.debug(line) -^ Goes to dstream -minetest.log(line) -minetest.log(loglevel, line) -^ loglevel one of "error", "action", "info", "verbose" +minetest.after(time, func) +^ Call function after time seconds Global objects: minetest.env - environment reference diff --git a/games/minimal/mods/experimental/init.lua b/games/minimal/mods/experimental/init.lua index e1108627..5dab4135 100644 --- a/games/minimal/mods/experimental/init.lua +++ b/games/minimal/mods/experimental/init.lua @@ -6,38 +6,18 @@ experimental = {} -timers_to_add = {} -timers = {} -minetest.register_globalstep(function(dtime) - for indes, timer in ipairs(timers_to_add) do - table.insert(timers, timer) - end - timers_to_add = {} - for index, timer in ipairs(timers) do - timer.time = timer.time - dtime - if timer.time <= 0 then - timer.func() - timers[index] = nil - end - end -end) - -after = function(time, func) - table.insert(timers_to_add, {time=time, func=func}) -end - --[[ stepsound = -1 function test_sound() print("test_sound") stepsound = minetest.sound_play("default_grass_footstep", {gain=1.0}) - after(2.0, test_sound) - --after(0.1, test_sound_stop) + minetest.after(2.0, test_sound) + --minetest.after(0.1, test_sound_stop) end function test_sound_stop() print("test_sound_stop") minetest.sound_stop(stepsound) - after(2.0, test_sound) + minetest.after(2.0, test_sound) end test_sound() --]] -- 2.30.2