rain volume increased

master
root 2021-09-19 03:29:56 +02:00
parent 3c7accffb5
commit 57d7f4ea41
3 changed files with 34 additions and 9 deletions

View File

@ -28,3 +28,4 @@ dust_effect = true
#Rain Tweaks
rain_particles = 15
rain_falling_speed = 15
rain_sound_gain = 0.35

View File

@ -26,6 +26,7 @@ climatez.settings = {
rain_particles = tonumber(settings:get("rain_particles")) or 15,
rain_falling_speed = tonumber(settings:get("rain_falling_speed")) or 15,
lightning_duration = tonumber(settings:get("lightning_duration")) or 0.15,
rain_sound_gain = tonumber(settings:get("rain_sound_gain")) or 0.35,
}
local timer = 0 -- A timer to create climates each x seconds an for lightning too.
@ -121,7 +122,7 @@ local function is_on_surface(player_pos)
if not height then
return false
end
if (player_pos.y + 1.5) >= height then
if (player_pos.y + 5) >= height then
return true
end
end
@ -237,6 +238,23 @@ local function remove_lightning(player_name)
meta:set_int("climatez:lightning", -1)
end
-- raind sounds
local function start_rain_sound(player_name)
local rain_sound_handle = minetest.sound_play("climatez_rain", {
to_player = player_name,
loop = true,
gain = climatez.settings.rain_sound_gain
})
climatez.players[player_name].rain_sound_handle = rain_sound_handle
end
local function stop_rain_sound(player_name, rain_sound_handle)
minetest.sound_stop(rain_sound_handle)
climatez.players[player_name].rain_sound_handle = nil
end
-- CLIMATE PLAYERS FUNCTIONS
local function add_climate_player(player_name, climate_id, downfall_type)
@ -281,13 +299,9 @@ local function add_climate_player(player_name, climate_id, downfall_type)
})
end
if climatez.settings.climate_rain_sound and (downfall_type == "rain" or downfall_type== "storm") then
local rain_sound_handle = minetest.sound_play("climatez_rain", {
to_player = player_name,
loop = true,
gain = 1.0,
})
climatez.players[player_name].rain_sound_handle = rain_sound_handle
if climatez.settings.climate_rain_sound and (downfall_type == "rain" or downfall_type== "storm")
and is_on_surface(player:get_pos()) then
start_rain_sound(player_name)
end
--minetest.chat_send_all(player_name.." added to climate "..tostring(climate_id))
@ -312,7 +326,7 @@ local function remove_climate_player_effects(player_name)
local rain_sound_handle = climatez.players[player_name].rain_sound_handle
if rain_sound_handle and climatez.settings.climate_rain_sound
and (downfall_type == "rain" or downfall_type == "storm") then
minetest.sound_stop(rain_sound_handle)
stop_rain_sound(player_name, rain_sound_handle)
end
if downfall_type == "sand" and climatez.settings.dust_effect then
@ -538,6 +552,16 @@ local climate = {
end
end
if climatez.settings.climate_rain_sound
and (self.downfall_type == "rain" or self.downfall_type == "storm") then
local rain_sound_handle = climatez.players[_player_name].rain_sound_handle
if rain_sound_handle and not(is_on_surface(_player_pos)) then
stop_rain_sound(_player_name, rain_sound_handle)
elseif not(rain_sound_handle) and is_on_surface(_player_pos) then
start_rain_sound(_player_name)
end
end
--minetest.chat_send_all("Climate created by ".._player_name)
end
}

Binary file not shown.