From 19ca1bf0f15d97d2d9665745275148a673f0124b Mon Sep 17 00:00:00 2001 From: Hugues Ross Date: Sat, 18 Apr 2020 11:28:21 -0400 Subject: [PATCH] Add feedback sounds for table-related actions, and make sounds play for everyone --- items.lua | 6 +++--- map_api.lua | 7 +++++++ sounds/cartographer_turn_page.ogg | Bin 0 -> 10461 bytes table.lua | 12 ++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 sounds/cartographer_turn_page.ogg diff --git a/items.lua b/items.lua index 7d3aa32..ad3b487 100644 --- a/items.lua +++ b/items.lua @@ -85,7 +85,7 @@ minetest.register_on_player_receive_fields(function(player, name, fields) local player_x, player_z = cartographer.to_map_coordinates(map, pos.x, pos.z); cartographer.set_marker(map, player_x, player_z, marker); - minetest.sound_play("cartographer_write", { to_player=player:get_player_name() }, true); + cartographer.map_sound("cartographer_write", player); show_map_id_formspec(map.id, pos.x, pos.z, player:get_player_name(), data.page); elseif k == "prev_button" then show_map_id_formspec(map.id, pos.x, pos.z, player:get_player_name(), data.page - 1); @@ -136,7 +136,7 @@ minetest.register_node("cartographer:map", { -- pos: The position of the node -- player: The player that right-clicked the node on_rightclick = function(pos, _, player) - minetest.sound_play("cartographer_open_map", { to_player=name }, true); + cartographer.map_sound("cartographer_open_map", player); show_map_meta(minetest.get_meta(pos), player); end, @@ -145,7 +145,7 @@ minetest.register_node("cartographer:map", { -- stack: The itemstack -- player: The player that used the item on_use = function(stack, player) - minetest.sound_play("cartographer_open_map", { to_player=name }, true); + cartographer.map_sound("cartographer_open_map", player); show_map_meta(stack:get_meta(), player); end, }); diff --git a/map_api.lua b/map_api.lua index eed8018..4b4819a 100644 --- a/map_api.lua +++ b/map_api.lua @@ -257,3 +257,10 @@ function cartographer.get_marker_texture(id, detail) return nil; end + +-- Play a feedback sound localized on the given player +-- sound: The sound to play +-- player: The player who triggered the sound +function cartographer.map_sound(sound, player) + minetest.sound_play(sound, { pos=player:get_pos(), max_hear_distance=5 }, true); +end diff --git a/sounds/cartographer_turn_page.ogg b/sounds/cartographer_turn_page.ogg new file mode 100644 index 0000000000000000000000000000000000000000..eecc5648b80f1f148a5b2db2387ef56e4e6b9bf0 GIT binary patch literal 10461 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 W<<(g0=dK%N3n+zaxk;P3hW`ugDH81f literal 0 HcmV?d00001 diff --git a/table.lua b/table.lua index c2c8316..1f9262e 100644 --- a/table.lua +++ b/table.lua @@ -368,6 +368,7 @@ minetest.register_on_player_receive_fields(function(player, name, fields) meta:set_int("paper", paper); meta:set_int("pigment", pigment); + cartographer.map_sound("cartographer_write", player); inv:set_stack("output", 1, cartographer.create_map_item(size, 1 + detail, scale)); end else @@ -387,6 +388,7 @@ minetest.register_on_player_receive_fields(function(player, name, fields) if map ~= nil then map.detail = 1 + detail; end + cartographer.map_sound("cartographer_write", player); inv:set_stack("output", 1, stack); end end @@ -413,6 +415,7 @@ minetest.register_on_player_receive_fields(function(player, name, fields) meta:set_int("paper", paper); meta:set_int("pigment", pigment); + cartographer.map_sound("cartographer_write", player); inv:set_stack("copy_output", 1, cartographer.copy_map_item(in_stack)); end end @@ -443,10 +446,13 @@ minetest.register_on_player_receive_fields(function(player, name, fields) meta:set_int("scale", SCALE_LARGE); table_formspec(player:get_player_name(), 2) elseif fields["tab1"] ~= nil then + cartographer.map_sound("cartographer_turn_page", player); table_formspec(player:get_player_name(), 1); elseif fields["tab2"] ~= nil then + cartographer.map_sound("cartographer_turn_page", player); table_formspec(player:get_player_name(), 2); elseif fields["tab3"] ~= nil then + cartographer.map_sound("cartographer_turn_page", player); table_formspec(player:get_player_name(), 3); end end @@ -488,6 +494,8 @@ minetest.register_node("cartographer:simple_table", { }, on_rightclick = function(pos, node, player, itemstack, pointed_thing) player_tables[player:get_player_name()] = minetest.get_pointed_thing_position(pointed_thing); + + cartographer.map_sound("cartographer_open_map", player); table_formspec(player:get_player_name(), 1) end, @@ -518,6 +526,8 @@ minetest.register_node("cartographer:standard_table", { }, on_rightclick = function(pos, node, player, itemstack, pointed_thing) player_tables[player:get_player_name()] = minetest.get_pointed_thing_position(pointed_thing); + + cartographer.map_sound("cartographer_open_map", player); table_formspec(player:get_player_name(), 1) end, @@ -548,6 +558,8 @@ minetest.register_node("cartographer:advanced_table", { }, on_rightclick = function(pos, node, player, itemstack, pointed_thing) player_tables[player:get_player_name()] = minetest.get_pointed_thing_position(pointed_thing); + + cartographer.map_sound("cartographer_open_map", player); table_formspec(player:get_player_name(), 1) end,