3 local old_in_water = false
4 --this is to check if the player is exploring a cave
5 --if exploring cave not near an open shaft then play a scary noise
7 local scary_sound_player_timer = math.random(-120,0)
10 --this is used for the water trickling effect
11 local water_trickling_timer = 0
12 local water_sound_handle = nil
14 minetest.register_globalstep(function(dtime)
15 if not minetest.localplayer then
18 local vel = minetest.localplayer:get_velocity().y
19 local pos = minetest.localplayer:get_pos()
21 local node = minetest.get_node_or_nil(pos)
23 local name = node.name
24 if name == "main:water" or name == "main:waterflow" then
26 if in_water == true and old_in_water == false and vel < 0 then
27 minetest.sound_play("splash", {gain = 0.4, pitch = math.random(80,100)/100, gain = 0.05})
35 old_in_water = in_water
38 ---------------------------------------------
39 --print(scary_sound_player_timer)
40 --try to play every 5-7 minutes
41 scary_sound_player_timer = scary_sound_player_timer + dtime
42 if scary_sound_player_timer > 300 then
43 scary_sound_player_timer = math.random(-120,0)
45 --save this for version 5.3.0
46 --local light = minetest.get_node_light(pos)
48 if pos.y < 0 and light <= 13 then
49 minetest.sound_play("scary_noise",{gain=0.4,pitch=math.random(70,100)/100})
54 ------------------------------------------------------
56 --the water trickling timer
57 water_trickling_timer = water_trickling_timer + dtime
58 if water_trickling_timer > 0.4 then
59 water_trickling_timer = 0
60 local is_water_near = minetest.find_node_near(pos, 3, {"main:waterflow"})
61 if is_water_near and not water_sound_handle then
62 water_sound_handle = minetest.sound_play("stream", {loop=true,gain=0.1})
63 --save this for version 5.3.0
64 --minetest.sound_fade(water_sound_handle, 0.25, 0.1)
65 --water_sound_handle = minetest.sound_play("stream", {loop=true,gain=0})
66 elseif not is_water_near and water_sound_handle then
67 --save this for version 5.3.0
68 --minetest.sound_fade(water_sound_handle, -0.25, 0)
69 minetest.sound_stop(water_sound_handle)
70 water_sound_handle = nil