From cbe9f7252600f4e10cd6fc4dced73821d8697ad9 Mon Sep 17 00:00:00 2001 From: cora Date: Sun, 30 Jan 2022 20:09:38 +0100 Subject: [PATCH] add simple weather particlespawner manager --- mods/ENVIRONMENT/mcl_weather/weather_core.lua | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/mods/ENVIRONMENT/mcl_weather/weather_core.lua b/mods/ENVIRONMENT/mcl_weather/weather_core.lua index 34f69406d..7aec1a9ff 100644 --- a/mods/ENVIRONMENT/mcl_weather/weather_core.lua +++ b/mods/ENVIRONMENT/mcl_weather/weather_core.lua @@ -47,6 +47,29 @@ local function save_weather() end minetest.register_on_shutdown(save_weather) +local particlespawners={} +function mcl_weather.add_spawner_player(pl,id,ps) + local name=pl:get_player_name() + if not particlespawners[name] then + particlespawners[name] = {} + end + if not particlespawners[name][id] then + ps.playername =name + ps.attached = pl + particlespawners[name][id]=minetest.add_particlespawner(ps) + return particlespawners[name][id] + end +end +function mcl_weather.remove_spawners_player(pl) + local name=pl:get_player_name() + if not particlespawners[name] then return end + for k,v in pairs(particlespawners[name]) do + minetest.delete_particlespawner(v) + end + particlespawners[name] = nil + return true +end + function mcl_weather.get_rand_end_time(min_duration, max_duration) local r if min_duration and max_duration then