aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md5
-rw-r--r--globalstep.lua25
2 files changed, 19 insertions, 11 deletions
diff --git a/README.md b/README.md
index 4bffb57..ab72b75 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,9 @@
## Settings
-* `mesecons_debug.circuit_breaker` Max time usage per mapblock in micros per 10 seconds.
-* `mesecons_debug.dark_timer` Dark time in microseconds: how long the mapblock stays inactive.
+* `mesecons_debug_max_globalstep_time`
+* `mesecons_debug_cooldown_steps`
+* `mesecons_debug_autoflush`
## Commands
diff --git a/globalstep.lua b/globalstep.lua
index 7df1970..bb4bf34 100644
--- a/globalstep.lua
+++ b/globalstep.lua
@@ -16,19 +16,26 @@ for i, globalstep in ipairs(minetest.registered_globalsteps) do
local cooldown = 0
local fn = function(dtime)
if cooldown > 0 then
- cooldown = cooldown - 1
- return
+ cooldown = cooldown - 1
+ return
end
if enabled then
- local t0 = minetest.get_us_time()
+ local max_globalstep_time = tonumber(minetest.settings:get("mesecons_debug_max_globalstep_time", "75000"))
+ local cooldown_steps = tonumber(minetest.settings:get("mesecons_debug_cooldown_steps", "5"))
+ local autoflush = tonumber(minetest.settings:get_bool("mesecons_debug_autoflush", false))
+
+ local t0 = minetest.get_us_time()
globalstep(dtime)
- local t1 = minetest.get_us_time()
- local diff = t1 - t0
- if diff > 75000 then
- cooldown = 5
- minetest.log("warning", "[mesecons_debug] cooldown triggered")
- end
+ local t1 = minetest.get_us_time()
+ local diff = t1 - t0
+ if diff > max_globalstep_time then
+ cooldown = cooldown_steps
+ minetest.log("warning", "[mesecons_debug] cooldown triggered")
+ if autoflush then
+ mesecon.queue.actions = {}
+ end
+ end
end
end