diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-04-01 12:37:41 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-04-01 12:38:19 +0300 |
commit | 67547f74fc6176b978548a93c3c98b29d9cb0a22 (patch) | |
tree | 071016d409055982d5b85850dc7348c1d51f6165 /builtin/misc.lua | |
parent | 56ba193c77109687b9115be0ccb1730922caef65 (diff) | |
download | minetest-67547f74fc6176b978548a93c3c98b29d9cb0a22.tar.gz minetest-67547f74fc6176b978548a93c3c98b29d9cb0a22.tar.bz2 minetest-67547f74fc6176b978548a93c3c98b29d9cb0a22.zip |
Split builtin.lua to multiple files
Diffstat (limited to 'builtin/misc.lua')
-rw-r--r-- | builtin/misc.lua | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/builtin/misc.lua b/builtin/misc.lua new file mode 100644 index 000000000..01d5d1d4d --- /dev/null +++ b/builtin/misc.lua @@ -0,0 +1,58 @@ +-- Minetest: builtin/misc.lua + +-- +-- Misc. API functions +-- + +minetest.timers_to_add = {} +minetest.timers = {} +minetest.register_globalstep(function(dtime) + for _, 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(timer.param) + table.remove(minetest.timers,index) + end + end +end) + +function minetest.after(time, func, param) + table.insert(minetest.timers_to_add, {time=time, func=func, param=param}) +end + +function minetest.check_player_privs(name, privs) + local player_privs = minetest.get_player_privs(name) + local missing_privileges = {} + for priv, val in pairs(privs) do + if val then + if not player_privs[priv] then + table.insert(missing_privileges, priv) + end + end + end + if #missing_privileges > 0 then + return false, missing_privileges + end + return true, "" +end + +function minetest.get_connected_players() + -- This could be optimized a bit, but leave that for later + local list = {} + for _, obj in pairs(minetest.env:get_objects_inside_radius({x=0,y=0,z=0}, 1000000)) do + if obj:get_player_name() then + table.insert(list, obj) + end + end + return list +end + +function minetest.hash_node_position(pos) + return (pos.z+32768)*65536*65536 + (pos.y+32768)*65536 + pos.x+32768 +end + + |