From 675e1e1943598893acf3d652caca18b0193746d9 Mon Sep 17 00:00:00 2001 From: fluxionary <25628292+fluxionary@users.noreply.github.com> Date: Sun, 15 May 2022 21:55:33 -0700 Subject: Update lag-hud (#8) * add proper settings (untested) * more constants -> settings * normalize whitespace between code files * refactor globalsteps in order to simplify logic * minor refactoring * rename file * use mod_storage for persistent data; optimize context initialization * refactoring (moving files around) * rewrite penalty * add settings; document; allow changing while game is running * add command to update settings * update init after splitting commands into files * fix bugs; add debugging tools; too much for one commit... * fix whitelist conversion * add adjustable blinky plant to timer overrides * add some more mesecons nodes with repeating timers * resolve luacheck warnings * tweak hud * Update documentation; parameterize more things; refactor some logic for readability * update lag even when mesecons isn't active --- penalty.lua | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/penalty.lua b/penalty.lua index 1e20706..23f3e2f 100644 --- a/penalty.lua +++ b/penalty.lua @@ -83,15 +83,6 @@ minetest.register_globalstep(function(dtime) mesecons_debug.avg_total_micros_per_second) mesecons_debug.avg_total_micros_per_second = avg_total_micros_per_second - if context_store_size == 0 or avg_total_micros_per_second == 0 then - -- nothing to do, but reset counters - elapsed = 0 - elapsed_steps = 0 - mesecons_debug.total_micros = 0 - return - end - - -- how much lag is there? local lag = elapsed / (elapsed_steps * expected_dtime) local avg_lag = update_average(lag, mesecons_debug.avg_lag) @@ -99,25 +90,33 @@ minetest.register_globalstep(function(dtime) local is_high_lag = avg_lag > high_lag_ratio local is_moderate_lag = avg_lag > moderate_lag_ratio - - -- how much of the lag was mesecons? - local mesecons_load = avg_total_micros_per_second / 1000000 - local is_high_load = mesecons_load > high_load_threshold - -- for use by HUD if is_high_lag then - mesecons_debug.lag_level = 'high' + mesecons_debug.lag_level = "high" elseif is_moderate_lag then - mesecons_debug.lag_level = 'moderate' + mesecons_debug.lag_level = "moderate" else - mesecons_debug.lag_level = 'low' + mesecons_debug.lag_level = "low" end + if context_store_size == 0 or avg_total_micros_per_second == 0 then + -- nothing to do, but reset counters + elapsed = 0 + elapsed_steps = 0 + mesecons_debug.total_micros = 0 + mesecons_debug.load_level = "none" + return + end + + -- how much of the lag was mesecons? + local mesecons_load = avg_total_micros_per_second / 1000000 + local is_high_load = mesecons_load > high_load_threshold + -- for use by HUD if is_high_load then - mesecons_debug.load_level = 'high' + mesecons_debug.load_level = "high" else - mesecons_debug.load_level = 'low' + mesecons_debug.load_level = "low" end local penalty_scale, penalty_offset -- cgit v1.2.3