From e8f4048670494e3269b9dce5b059ee5bccaa3368 Mon Sep 17 00:00:00 2001 From: mazes-80 <1608580+mazes-80@users.noreply.github.com> Date: Tue, 20 Sep 2022 05:46:12 +0200 Subject: [PATCH 1/3] lib/trigger: remove unrequired tests --- lib/trigger.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/trigger.lua b/lib/trigger.lua index 68959ef..d3c1091 100644 --- a/lib/trigger.lua +++ b/lib/trigger.lua @@ -93,10 +93,8 @@ function trigger.get_active_effects() local hp = player:get_hp() -- skip weather presets for dead players if hp ~= nil and hp > 0 then - environments[pname] = trigger.get_player_environment(player) - end - local env = environments[pname] - if env ~= nil then + local env = trigger.get_player_environment(player) + environments[pname] = env for wname, wconfig in pairs(climate_mod.weathers) do if is_weather_active(player, wname, env) then if climate_mod.current_weather[pname] == nil then From 5635ab4daa03a5a5a0b3f801249083087820b7c0 Mon Sep 17 00:00:00 2001 From: mazes-80 <1608580+mazes-80@users.noreply.github.com> Date: Sat, 1 Oct 2022 22:05:37 +0200 Subject: [PATCH 2/3] Do nothing when no player online --- lib/main.lua | 5 ++++- lib/trigger.lua | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/main.lua b/lib/main.lua index e6c6a1f..64d6a2e 100644 --- a/lib/main.lua +++ b/lib/main.lua @@ -4,6 +4,9 @@ local WORLD_CYCLE = 30.00 * climate_mod.settings.tick_speed -- only update globa local gs_timer = 0 local world_timer = 0 minetest.register_globalstep(function(dtime) + local player_list = minetest.get_connected_players() + if #player_list == 0 then return end + gs_timer = gs_timer + dtime world_timer = world_timer + dtime @@ -26,7 +29,7 @@ minetest.register_globalstep(function(dtime) end end - local current_effects = climate_mod.trigger.get_active_effects() + local current_effects = climate_mod.trigger.get_active_effects(player_list) for name, effect in pairs(climate_mod.effects) do local cycle = climate_mod.cycles[name].timespan * climate_mod.settings.tick_speed diff --git a/lib/trigger.lua b/lib/trigger.lua index d3c1091..eea1879 100644 --- a/lib/trigger.lua +++ b/lib/trigger.lua @@ -83,12 +83,12 @@ local function get_weather_effects(player, weather_config, env) return effects end -function trigger.get_active_effects() +function trigger.get_active_effects(players) local environments = {} local effects = {} climate_mod.current_weather = {} - for _, player in ipairs(minetest.get_connected_players()) do + for _, player in ipairs(players) do local pname = player:get_player_name() local hp = player:get_hp() -- skip weather presets for dead players From eff85fbd2b327194aebba0ef788a4e1ddee3eab0 Mon Sep 17 00:00:00 2001 From: mazes-80 <1608580+mazes-80@users.noreply.github.com> Date: Sun, 2 Oct 2022 19:01:38 +0200 Subject: [PATCH 3/3] Lower GSCYCLE: more cycles to skip --- lib/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/main.lua b/lib/main.lua index 64d6a2e..7a2dedb 100644 --- a/lib/main.lua +++ b/lib/main.lua @@ -1,4 +1,4 @@ -local GSCYCLE = 0.03 * climate_mod.settings.tick_speed -- only process event loop after this amount of time +local GSCYCLE = 0.3 * climate_mod.settings.tick_speed -- only process event loop after this amount of time local WORLD_CYCLE = 30.00 * climate_mod.settings.tick_speed -- only update global environment influences after this amount of time local gs_timer = 0