-
Notifications
You must be signed in to change notification settings - Fork 572
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add initial environmental sounds mod with flowing water sounds
default:river_water_source can also create sound if desired as rivers are considered to be flowing water. A simple mod for now, with the intention to later use new engine environmental sound features if/when they appear.
- Loading branch information
Showing
10 changed files
with
145 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Minetest Game mod: env_sounds | ||
============================= | ||
See license.txt for license information. | ||
|
||
Authors of source code | ||
---------------------- | ||
paramat (MIT) | ||
|
||
Authors of media (sounds) | ||
------------------------- | ||
Yuval (CC0 1.0) | ||
https://freesound.org/people/Yuval/sounds/197023/ | ||
env_sounds_water.*.ogg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
-- Parameters | ||
|
||
local radius = 8 -- Water node search radius around player | ||
|
||
-- End of parameters | ||
|
||
|
||
local river_source_sounds = minetest.settings:get_bool("river_source_sounds") | ||
|
||
|
||
-- Update sound for player | ||
|
||
local function update_sound(player) | ||
local player_name = player:get_player_name() | ||
local ppos = player:get_pos() | ||
local areamin = vector.subtract(ppos, radius) | ||
local areamax = vector.add(ppos, radius) | ||
local water_nodes = {"default:water_flowing", "default:river_water_flowing"} | ||
if river_source_sounds then | ||
table.insert(water_nodes, "default:river_water_source") | ||
end | ||
local wpos, _ = minetest.find_nodes_in_area(areamin, areamax, water_nodes) | ||
local waters = #wpos | ||
if waters == 0 then | ||
return | ||
end | ||
|
||
-- Find average position of water positions | ||
local wposav = vector.new() | ||
for _, pos in ipairs(wpos) do | ||
wposav.x = wposav.x + pos.x | ||
wposav.y = wposav.y + pos.y | ||
wposav.z = wposav.z + pos.z | ||
end | ||
wposav = vector.divide(wposav, waters) | ||
|
||
minetest.sound_play( | ||
"env_sounds_water", | ||
{ | ||
pos = wposav, | ||
to_player = player_name, | ||
gain = math.min(0.04 + waters * 0.004, 0.4), | ||
} | ||
) | ||
end | ||
|
||
|
||
-- Update sound 'on joinplayer' | ||
|
||
minetest.register_on_joinplayer(function(player) | ||
update_sound(player) | ||
end) | ||
|
||
|
||
-- Cyclic sound update | ||
|
||
local function cyclic_update() | ||
for _, player in pairs(minetest.get_connected_players()) do | ||
update_sound(player) | ||
end | ||
minetest.after(3.5, cyclic_update) | ||
end | ||
|
||
minetest.after(0, cyclic_update) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
License of source code | ||
---------------------- | ||
|
||
The MIT License (MIT) | ||
Copyright (C) 2019 paramat | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of this | ||
software and associated documentation files (the "Software"), to deal in the Software | ||
without restriction, including without limitation the rights to use, copy, modify, merge, | ||
publish, distribute, sublicense, and/or sell copies of the Software, and to permit | ||
persons to whom the Software is furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or | ||
substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, | ||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE | ||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | ||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
DEALINGS IN THE SOFTWARE. | ||
|
||
For more details: | ||
https://opensource.org/licenses/MIT | ||
|
||
|
||
Licenses of media (sounds) | ||
-------------------------- | ||
|
||
CC0 1.0 Universal (CC0 1.0) Public Domain Dedication | ||
Yuval | ||
|
||
No Copyright | ||
|
||
The person who associated a work with this deed has dedicated the work to the | ||
public domain by waiving all of his or her rights to the work worldwide under | ||
copyright law, including all related and neighboring rights, to the extent | ||
allowed by law. | ||
|
||
You can copy, modify, distribute and perform the work, even for commercial | ||
purposes, all without asking permission. See Other Information below. | ||
|
||
Other Information: | ||
|
||
In no way are the patent or trademark rights of any person affected by CC0, nor | ||
are the rights that other persons may have in the work or in how the work is | ||
used, such as publicity or privacy rights. | ||
|
||
Unless expressly stated otherwise, the person who associated a work with this | ||
deed makes no warranties about the work, and disclaims liability for all uses | ||
of the work, to the fullest extent permitted by applicable law. | ||
|
||
When using or citing the work, you should not imply endorsement by the author | ||
or the affirmer. | ||
|
||
For more details: | ||
https://creativecommons.org/publicdomain/zero/1.0/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
name = env_sounds | ||
description = Minetest Game mod: env_sounds | ||
depends = default |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters