diff options
author | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-11-06 19:50:10 -0500 |
---|---|---|
committer | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-11-06 19:53:38 -0500 |
commit | 8fd0789ad296bcfad13f73084e95b8a93427ef81 (patch) | |
tree | f79afa90d4a311918e3a2b0063312dbe5dac2df6 | |
parent | e6bfd4c31b47ad2c7058782bcf055d6a10d12ecc (diff) |
add "random return" CPU limiter to active queue playbackHEADorigin/masterorigin/HEADmaster
set `biome_lib_queue_run_ratio = <1 to 100>` to use
default 100 (basically, a percentage of max runtime).
-rw-r--r-- | API.txt | 6 | ||||
-rw-r--r-- | init.lua | 7 |
2 files changed, 11 insertions, 2 deletions
@@ -481,6 +481,12 @@ Set this to true if you want the mod to spam your console with debug info :-) plantlife_debug = false +To slow down the playback of the queue (e.g. for really slow machines where +the 0.2 second max limiter isn't enough), set: + + biome_lib_queue_run_ratio = <some value 1 to 100> + +Default is 100 (basically percent of maximum runtime) ====================== Fertile Ground Mapping @@ -31,6 +31,8 @@ biome_lib.modpath = minetest.get_modpath("biome_lib") biome_lib.total_no_aircheck_calls = 0 +biome_lib.queue_run_ratio = tonumber(minetest.settings:get("biome_lib_queue_run_ratio")) or 100 + -- Boilerplate to support localized strings if intllib mod is installed. local S if minetest.get_modpath("intllib") then @@ -427,8 +429,9 @@ end) -- "Play" them back, populating them with new stuff in the process minetest.register_globalstep(function(dtime) - if dtime < 0.2 and -- don't attempt to populate if lag is already too high - (#biome_lib.blocklist_aircheck > 0 or #biome_lib.blocklist_no_aircheck > 0) then + if dtime < 0.2 -- don't attempt to populate if lag is already too high + and math.random(100) <= biome_lib.queue_run_ratio + and (#biome_lib.blocklist_aircheck > 0 or #biome_lib.blocklist_no_aircheck > 0) then biome_lib.globalstep_start_time = minetest.get_us_time() biome_lib.globalstep_runtime = 0 while (#biome_lib.blocklist_aircheck > 0 or #biome_lib.blocklist_no_aircheck > 0) |