diff --git a/README.md b/README.md index 4c5595f..ed96d4f 100644 --- a/README.md +++ b/README.md @@ -53,3 +53,7 @@ pova.do_override(player) - 'pova_loop' now contains loop timer in seconds, 0 to disable - Added def.priority setting to add_override to stop unimportant changes - tweak and optimize code + +### 0.5 + + - Remove globalstep and replace with minetest.after for pova_loop diff --git a/init.lua b/init.lua index 1052a12..d7b3d68 100644 --- a/init.lua +++ b/init.lua @@ -12,23 +12,23 @@ local pova_loop = minetest.settings:get_bool("pova_loop") or 1.0 -- main loop that runs and totals override list if pova_loop ~= 0 then - local timer = 0 + local pova_func -- define as temp for following function to work - minetest.register_globalstep(function(dtime) - - timer = timer + dtime - - if timer < pova_loop then - return - end - - timer = 0 + pova_func = function() -- loop through players and apply overrides for _,player in ipairs(minetest.get_connected_players()) do pova.do_override(player) end - end) + + -- run function again after delay + minetest.after(pova_loop, function() + pova_func() + end) + end + + -- initial run + pova_func() end