summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWuzzy <wuzzy2@mail.ru>2020-08-08 11:22:51 +0200
committerGitHub <noreply@github.com>2020-08-08 12:22:51 +0300
commit16836b16d690e2d337575afe9fde286f32ec5d5f (patch)
tree4d835cec6201dca3d70cc80e8886acba3fcd2700
parentc1eccba24760e0b80666dd8d1e56b5fe7f3a5b28 (diff)
downloadmesecons-16836b16d690e2d337575afe9fde286f32ec5d5f.tar
mesecons-16836b16d690e2d337575afe9fde286f32ec5d5f.tar.gz
mesecons-16836b16d690e2d337575afe9fde286f32ec5d5f.tar.bz2
mesecons-16836b16d690e2d337575afe9fde286f32ec5d5f.tar.xz
mesecons-16836b16d690e2d337575afe9fde286f32ec5d5f.zip
Make more nodes trigger special noteblock sounds (#506)
-rw-r--r--mesecons_noteblock/doc/noteblock/description.html19
-rw-r--r--mesecons_noteblock/init.lua22
2 files changed, 28 insertions, 13 deletions
diff --git a/mesecons_noteblock/doc/noteblock/description.html b/mesecons_noteblock/doc/noteblock/description.html
index c2cfaf0..e11724d 100644
--- a/mesecons_noteblock/doc/noteblock/description.html
+++ b/mesecons_noteblock/doc/noteblock/description.html
@@ -1,12 +1,13 @@
-This effector makes a sound if powered and can be used for making music. Normally it makes piano sounds. The sound frequency can be changed by punching the block. There are some special sounds that depend on the block below:
+This effector makes a sound if powered and can be used for making music. Normally it makes piano sounds. The sound frequency can be changed by punching the block (only works for piano). There are some special sounds that depend on the block below:
<table colspace="5">
<tr><th>Block Below</th><th>Effect</th></tr>
-<tr><td>Glass</td><td>Hihat</td></tr>
-<tr><td>Stone</td><td>Kick</td></tr>
-<tr><td>Chest</td><td>Snare</td></tr>
-<tr><td>Tree</td><td>Crash</td></tr>
-<tr><td>Wood</td><td>Lite Crash</td></tr>
-<tr><td>Coal Block</td><td>Explosion Sound </td></tr>
-<tr><td>Lava Source</td><td>Fire Sound</td></tr>
-<tr><td>Steel Block</td><td>Raises the pitch by one octave</td></tr>
+<tr><td>Glass or Obsidian Glass</td><td>Hi-hat</td></tr>
+<tr><td>Any stone</td><td>Kick</td></tr>
+<tr><td>Chest or Locked Chest</td><td>Snare</td></tr>
+<tr><td>Any tree</td><td>Crash</td></tr>
+<tr><td>Any wooden planks</td><td>Lite Crash</td></tr>
+<tr><td>Coal Block</td><td>Explosion sound</td></tr>
+<tr><td>Lava Source</td><td>Fire sound</td></tr>
+<tr><td>Steel Block</td><td>Piano (high pitch, one octave higher than normal)</td></tr>
+<tr><td>Any other block</td><td>Piano (low pitch)</td></tr>
</table>
diff --git a/mesecons_noteblock/init.lua b/mesecons_noteblock/init.lua
index 55a9bd7..b4e7d24 100644
--- a/mesecons_noteblock/init.lua
+++ b/mesecons_noteblock/init.lua
@@ -43,13 +43,18 @@ local soundnames = {
}
local node_sounds = {
- ["default:glass"] = "mesecons_noteblock_hihat",
- ["default:stone"] = "mesecons_noteblock_kick",
["default:lava_source"] = "fire_fire",
["default:chest"] = "mesecons_noteblock_snare",
- ["default:tree"] = "mesecons_noteblock_crash",
- ["default:wood"] = "mesecons_noteblock_litecrash",
+ ["default:chest_locked"] = "mesecons_noteblock_snare",
["default:coalblock"] = "tnt_explode",
+ ["default:glass"] = "mesecons_noteblock_hihat",
+ ["default:obsidian_glass"] = "mesecons_noteblock_hihat",
+}
+
+local node_sounds_group = {
+ ["stone"] = "mesecons_noteblock_kick",
+ ["tree"] = "mesecons_noteblock_crash",
+ ["wood"] = "mesecons_noteblock_litecrash",
}
mesecon.noteblock_play = function(pos, param2)
@@ -57,6 +62,15 @@ mesecon.noteblock_play = function(pos, param2)
local nodeunder = minetest.get_node(pos).name
local soundname = node_sounds[nodeunder]
if not soundname then
+ for k,v in pairs(node_sounds_group) do
+ local g = minetest.get_item_group(nodeunder, k)
+ if g ~= 0 then
+ soundname = v
+ break
+ end
+ end
+ end
+ if not soundname then
soundname = soundnames[param2]
if not soundname then
minetest.log("error", "[mesecons_noteblock] No soundname found, test param2")