Drippingwater: add sfx for dripping on lava/water

master
Wuzzy 2021-07-18 13:22:08 +02:00
parent 61aae7168f
commit 2457824c5f
7 changed files with 60 additions and 26 deletions

View File

@ -26,20 +26,49 @@ minetest.register_entity("drippingwater:drop_water", {
end,
on_step = function(self, dtime)
local k = math.random(1,222)
local ownpos = self.object:get_pos()
if k==1 then
self.object:set_acceleration({x=0, y=GRAVITY, z=0})
local falling = false
local acc = self.object:get_acceleration()
if acc.y < -0.01 then
falling = true
end
if minetest.get_node({x=ownpos.x, y=ownpos.y+0.5, z=ownpos.z}).name == "air" then
self.object:set_acceleration({x=0, y=GRAVITY, z=0})
if not falling then
local k = math.random(1,222)
if k==1 then
self.object:set_acceleration({x=0, y=GRAVITY, z=0})
else
local n_above = minetest.get_node({x=ownpos.x, y=ownpos.y+0.5, z=ownpos.z})
local d_above = minetest.registered_nodes[n_above.name]
if not d_above then
self.object:remove()
return
end
if not d_above.walkable then
self.object:set_acceleration({x=0, y=GRAVITY, z=0})
end
end
end
if minetest.get_node({x=ownpos.x, y=ownpos.y -0.5, z=ownpos.z}).name ~= "air" then
local n_below = minetest.get_node({x=ownpos.x, y=ownpos.y -0.5, z=ownpos.z})
local d_below = minetest.registered_nodes[n_below.name]
if not d_below then
self.object:remove()
minetest.sound_play({name="drippingwater_drip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}, true)
return
end
if d_below.walkable or d_below.liquidtype ~= "none" then
self.object:remove()
local snd, gain = "drippingwater_drip", 0.5
local n_here = minetest.get_node(ownpos)
if minetest.get_item_group(n_below.name, "water") ~= 0 or
minetest.get_item_group(n_here.name, "water") ~= 0 then
snd, gain = "drippingwater_drip_on_water", 0.5
elseif minetest.get_item_group(n_below.name, "lava") ~= 0 or
minetest.get_item_group(n_here.name, "lava") ~= 0 then
snd, gain = "drippingwater_drip_on_lava", 0.2
end
minetest.sound_play({name=snd}, {pos = ownpos, gain = gain, max_hear_distance = 8}, true)
end
end,
})

View File

@ -1,28 +1,33 @@
Dripping Water Mod
by kddekadenz
# Dripping Water Mod
Originally by kddekadenz,
adopted for Hades Revisited by Wuzzy.
Installing instructions:
## Description
1. Copy the drippingwater mod folder into games/gamemode/mods
* Droplets appear under porous blocks below water (dirt, dirt with grass, sandstone, etc.)
* They will stay some time at the block and than they fall down
* When they collide with the ground or liquid, a sound is played and they are destroyed
2. Start game and enjoy :)
## License
Code: CC0
Sounds effects: CC BY 3.0
Manual:
## Sounds
-> drops are generated rarely under crumbly nodes (dirt,grass,sandstone)
-> waterdrops are generated under cloudstone massively
-> they will stay some time at the generated block and than they fall down
-> when they collide with the ground, a sound is played and they are destroyed
drippingwater_drip.1.ogg
drippingwater_drip.2.ogg
drippingwater_drip.3.ogg
License: CC0
drippingwater_drip_on_water.1.ogg
drippingwater_drip_on_water.2.ogg
drippingwater_drip_on_water.3.ogg
by Legnalegna55 (CC0)
https://freesound.org/people/Legnalegna55/sounds/543649/
License:
code & sounds: CC0
Changelog:
16.04.2012 - first release
28.04.2012 - drops are now 3D; added lava drops; fixed generating of drops (not at edges now)
drippingwater_drip_on_lava.1.ogg
drippingwater_drip_on_lava.2.ogg
by brianbaltar (CC BY 3.0)
https://freesound.org/people/brianbaltar/sounds/524495/