Tweak weather durations to be more MC-like

This commit is contained in:
Wuzzy 2017-11-12 05:02:20 +01:00
parent 562bd6cd5a
commit f052f147b5
4 changed files with 26 additions and 12 deletions

View File

@ -175,13 +175,6 @@ rain.make_weather = function()
end end
end end
if weather.reg_weathers.rain == nil then
weather.reg_weathers.rain = {
chance = 15,
clear = rain.clear
}
end
-- Switch the number of raindrops: "thunder" for many raindrops, otherwise for normal raindrops -- Switch the number of raindrops: "thunder" for many raindrops, otherwise for normal raindrops
rain.set_particles_mode = function(mode) rain.set_particles_mode = function(mode)
if mode == "thunder" then if mode == "thunder" then
@ -242,3 +235,13 @@ if weather.allow_abm then
end end
}) })
end end
if weather.reg_weathers.rain == nil then
weather.reg_weathers.rain = {
chance = 15,
clear = rain.clear,
-- 10min - 20min
min_duration = 300,
max_duration = 600,
}
end

View File

@ -84,7 +84,10 @@ end)
if weather.reg_weathers.snow == nil then if weather.reg_weathers.snow == nil then
weather.reg_weathers.snow = { weather.reg_weathers.snow = {
chance = 10, chance = 10,
clear = snow.clear clear = snow.clear,
-- 10min - 20min
min_duration = 300,
max_duration = 600,
} }
end end

View File

@ -51,7 +51,8 @@ if weather.reg_weathers.thunder == nil then
weather.reg_weathers.thunder = { weather.reg_weathers.thunder = {
chance = 5, chance = 5,
clear = thunder.clear, clear = thunder.clear,
min_duration = 120, -- 10min - 20min
min_duration = 300,
max_duration = 600, max_duration = 600,
} }
end end

View File

@ -9,13 +9,13 @@ weather = {
next_check = 0, next_check = 0,
-- default weather recalculation interval -- default weather recalculation interval
check_interval = 300, check_interval = 150,
-- weather min duration -- weather min duration
min_duration = 240, min_duration = 300,
-- weather max duration -- weather max duration
max_duration = 3600, max_duration = 9000,
-- weather calculated end time -- weather calculated end time
end_time = nil, end_time = nil,
@ -152,6 +152,7 @@ minetest.register_chatcommand("weather", {
weather.reg_weathers[weather.state].clear() weather.reg_weathers[weather.state].clear()
end end
weather.state = "none" weather.state = "none"
weather.end_time = weather.get_rand_end_time()
success = true success = true
return return
end end
@ -159,6 +160,8 @@ minetest.register_chatcommand("weather", {
if (weather.reg_weathers ~= nil and weather.reg_weathers[param] ~= nil) then if (weather.reg_weathers ~= nil and weather.reg_weathers[param] ~= nil) then
if (weather.state ~= nil and weather.state ~= "none" and weather.reg_weathers[weather.state] ~= nil) then if (weather.state ~= nil and weather.state ~= "none" and weather.reg_weathers[weather.state] ~= nil) then
weather.reg_weathers[weather.state].clear() weather.reg_weathers[weather.state].clear()
local weather_meta = weather.reg_weathers[weather.state]
weather.end_time = weather.get_rand_end_time(weather_meta.min_duration, weather_meta.max_duration)
end end
weather.state = param weather.state = param
return return
@ -179,6 +182,8 @@ minetest.register_chatcommand("toggledownfall", {
weather.reg_weathers[weather.state].clear() weather.reg_weathers[weather.state].clear()
end end
weather.state = "none" weather.state = "none"
weather.end_time = weather.get_rand_end_time()
-- Currently clear: Set weather randomly to rain/thunder/snow -- Currently clear: Set weather randomly to rain/thunder/snow
else else
local new = { "rain", "thunder", "snow" } local new = { "rain", "thunder", "snow" }
@ -187,6 +192,8 @@ minetest.register_chatcommand("toggledownfall", {
weather.reg_weathers[weather.state].clear() weather.reg_weathers[weather.state].clear()
end end
weather.state = new[r] weather.state = new[r]
local weather_meta = weather.reg_weathers[weather.state]
weather.end_time = weather.get_rand_end_time(weather_meta.min_duration, weather_meta.max_duration)
end end
end end
}) })