epic_weather/rain.lua

56 lines
1.2 KiB
Lua
Raw Normal View History

2019-10-11 01:45:40 -07:00
epic_weather.register_weather({ name = "Rain" })
local function do_rain(player)
local ppos = player:get_pos()
local player_name = player:get_player_name()
if math.random(2) == 1 then
minetest.sound_play("epic_weather_rain", {
to_player = player_name,
gain = 1.0,
fade = 0.5,
pos = vector.add(ppos, {x=0, y=5, z=0})
})
end
minetest.add_particlespawner({
2019-11-08 04:11:03 -08:00
amount = 500,
2019-10-11 01:45:40 -07:00
time = 2,
minpos = vector.add(ppos, {x=-20, y=10, z=-20}),
maxpos = vector.add(ppos, {x=20, y=10, z=20}),
2019-12-26 12:30:58 -08:00
minvel = {x=0, y=-10, z=0},
maxvel = {x=0, y=-12, z=0},
2019-10-11 01:45:40 -07:00
minacc = {x=0, y=0, z=0},
maxacc = {x=0, y=0, z=0},
2019-12-26 12:30:58 -08:00
minexptime = 5,
2019-10-11 01:45:40 -07:00
maxexptime = 5,
2019-12-26 12:30:58 -08:00
minsize = 2,
maxsize = 3,
2019-10-11 01:45:40 -07:00
collisiondetection = true,
collision_removal = true,
object_collision = true,
vertical = true,
texture = "epic_weather_rain.png",
playername = player_name
})
end
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime
if timer < 2 then return end
timer=0
for _, player in ipairs(minetest.get_connected_players()) do
local playername = player:get_player_name()
local weathername = epic_weather.current_weather[playername]
if weathername == "Rain" then
do_rain(player)
end
end
end)