aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWuzzy <wuzzy2@mail.ru>2020-07-27 19:40:33 +0200
committerGitHub <noreply@github.com>2020-07-27 19:40:33 +0200
commitae83edd16581b2b5426b565e703a8766e88dbbf6 (patch)
treec7a9ee788aec17a1a1224cf7cc6a775af0227ec1
parent808fa5ecb3ddfd5d993000cc6b4c972257e182db (diff)
downloadminetest-ae83edd16581b2b5426b565e703a8766e88dbbf6.tar.gz
minetest-ae83edd16581b2b5426b565e703a8766e88dbbf6.tar.bz2
minetest-ae83edd16581b2b5426b565e703a8766e88dbbf6.zip
Play place_failed sound if occupied or cannot attach (#9486)
-rw-r--r--doc/lua_api.txt7
-rw-r--r--src/client/game.cpp2
2 files changed, 7 insertions, 2 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index e0c895c97..5fe02b452 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -7217,10 +7217,13 @@ Used by `minetest.register_node`.
-- Node was placed. Also played after falling
place_failed = <SimpleSoundSpec>,
- -- When node placement failed
+ -- When node placement failed.
+ -- Note: This happens if the _built-in_ node placement failed.
+ -- This sound will still be played if the node is placed in the
+ -- `on_place` callback manually.
fall = <SimpleSoundSpec>,
- -- When node starts to fall
+ -- When node starts to fall or is detached
},
drop = "",
diff --git a/src/client/game.cpp b/src/client/game.cpp
index 42d60b21c..20d2c6f90 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -3379,6 +3379,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def,
} else {
node = map.getNode(p, &is_valid_position);
if (is_valid_position && !nodedef->get(node).buildable_to) {
+ soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed;
// Report to server
client->interact(INTERACT_PLACE, pointed);
return false;
@@ -3451,6 +3452,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def,
pp = p + v3s16(0, -1, 0);
if (!nodedef->get(map.getNode(pp)).walkable) {
+ soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed;
// Report to server
client->interact(INTERACT_PLACE, pointed);
return false;