diff --git a/rain/command.lua b/rain/command.lua deleted file mode 100644 index 8b9af9a..0000000 --- a/rain/command.lua +++ /dev/null @@ -1,10 +0,0 @@ - - -minetest.register_chatcommand("cw", { - description = "normalize weather", - privs = {rain_manager = true}, - func = function(name, param) - weather.state = 'clear' - save_weather() - end -}) \ No newline at end of file diff --git a/rain/init.lua b/rain/init.lua index f820f7f..94bf2a0 100644 --- a/rain/init.lua +++ b/rain/init.lua @@ -122,6 +122,10 @@ minetest.register_globalstep(function(dtime) return false end + rain.make_weather() +end) + +rain.make_weather = function() for _, player in ipairs(minetest.get_connected_players()) do if (is_underwater(player)) then return false @@ -130,7 +134,7 @@ minetest.register_globalstep(function(dtime) rain.add_rain_particles(player, dtime) rain.update_sound(player) end -end) +end if weather.known_weathers.rain == nil then weather.known_weathers.rain = { diff --git a/thunder/depends.txt b/thunder/depends.txt new file mode 100644 index 0000000..e5bbd72 --- /dev/null +++ b/thunder/depends.txt @@ -0,0 +1,3 @@ +weather_core +rain +lightning \ No newline at end of file diff --git a/thunder/init.lua b/thunder/init.lua new file mode 100644 index 0000000..8907f31 --- /dev/null +++ b/thunder/init.lua @@ -0,0 +1,35 @@ +-- turn off lightning mod 'auto mode' +lightning.auto = false + +thunder = { + next_strike = 0, + min_delay = 3, + max_delay = 12, +} + +minetest.register_globalstep(function(dtime) + if weather.state ~= "thunder" then + return false + end + + rain.make_weather() + + if (thunder.next_strike <= os.time()) then + lightning.strike() + local delay = math.random(thunder.min_delay, thunder.max_delay) + thunder.next_strike = os.time() + delay + end + +end) + +thunder.clear = function() + rain.clear() +end + +-- register thunderstorm weather +if weather.known_weathers.thunder == nil then + weather.known_weathers.thunder = { + chance = 5, + clear = thunder.clear + } +end \ No newline at end of file