From 60c16eb57ba3a3c26ce2ca06ab55b1ba33ae0922 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 1 Apr 2012 13:46:46 +0300 Subject: [PATCH] Spread load better in leaf decay trunk caching --- mods/default/leafdecay.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mods/default/leafdecay.lua b/mods/default/leafdecay.lua index a01fe616..36b6df87 100644 --- a/mods/default/leafdecay.lua +++ b/mods/default/leafdecay.lua @@ -10,6 +10,14 @@ default.leafdecay_trunk_cache = {} default.leafdecay_enable_cache = true +-- Spread the load of finding trunks +default.leafdecay_trunk_find_allow_accumulator = 0 + +minetest.register_globalstep(function(dtime) + local finds_per_second = 5000 + default.leafdecay_trunk_find_allow_accumulator = + math.floor(dtime * finds_per_second) +end) minetest.register_abm({ nodenames = {"group:leafdecay"}, @@ -48,6 +56,11 @@ minetest.register_abm({ table.remove(default.leafdecay_trunk_cache, p0_hash) end end + if default.leafdecay_trunk_find_allow_accumulator <= 0 then + return + end + default.leafdecay_trunk_find_allow_accumulator = + default.leafdecay_trunk_find_allow_accumulator - 1 for dx = -d, d do if do_preserve then break end for dy = -d, d do if do_preserve then break end for dz = -d, d do if do_preserve then break end