From 51ef36c50c5b3e823b302250d535199d99b4ee82 Mon Sep 17 00:00:00 2001 From: Hugues Ross Date: Wed, 10 Jun 2020 07:02:46 -0400 Subject: [PATCH] Refactor audio out of api.lua --- audio.lua | 10 ++++++++++ commands.lua | 4 ++-- init.lua | 7 ++++--- items.lua | 8 ++++---- map_api.lua | 7 ------- table.lua | 18 +++++++++--------- 6 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 audio.lua diff --git a/audio.lua b/audio.lua new file mode 100644 index 0000000..01d2ae8 --- /dev/null +++ b/audio.lua @@ -0,0 +1,10 @@ +local audio = { + -- Play a feedback sound localized on the given player + -- sound: The sound to play + -- player: The player who triggered the sound + play_feedback = function(sound, player) + minetest.sound_play(sound, { pos=player:get_pos(), max_hear_distance=5 }, true); + end +}; + +return audio; diff --git a/commands.lua b/commands.lua index 804703b..2169de5 100644 --- a/commands.lua +++ b/commands.lua @@ -1,4 +1,4 @@ -local chunk, map_formspec = ...; +local chunk, audio, map_formspec = ...; local MAXINT = 2147483647; @@ -29,7 +29,7 @@ minetest.register_chatcommand("map", { scale = 1; end - cartographer.map_sound("cartographer_open_map", player); + audio.play_feedback("cartographer_open_map", player); minetest.show_formspec(name, "map", map_formspec.from_coords(math.floor((player_x / scale) + 0.5), math.floor((player_z / scale) + 0.5), 40, 40, detail, scale, true)); end, }) diff --git a/init.lua b/init.lua index e162a4d..55b9b9e 100644 --- a/init.lua +++ b/init.lua @@ -49,12 +49,13 @@ local marker_lookup = {}; -- Includes local skin = loadfile(modpath .. "/skin_api.lua") (); local gui = loadfile(modpath .. "/formspec.lua") (); +local audio = loadfile(modpath .. "/audio.lua") (); local scanner = loadfile(modpath .. "/scanner.lua") (map_data, chunk); loadfile(modpath .. "/map_api.lua") (map_data, chunk, scanner, biome_lookup, marker_lookup); local map_formspec = loadfile(modpath .. "/map_formspec.lua") (map_data, gui, skin); -loadfile(modpath .. "/items.lua") (chunk, marker_lookup, gui, skin, map_formspec); -loadfile(modpath .. "/commands.lua") (chunk, map_formspec); -loadfile(modpath .. "/table.lua") (gui, skin); +loadfile(modpath .. "/items.lua") (chunk, marker_lookup, gui, skin, audio, map_formspec); +loadfile(modpath .. "/commands.lua") (chunk, audio, map_formspec); +loadfile(modpath .. "/table.lua") (gui, skin, audio); cartographer.skin = skin; diff --git a/items.lua b/items.lua index c928ac5..c01f1f0 100644 --- a/items.lua +++ b/items.lua @@ -1,4 +1,4 @@ -local chunk, marker_lookup, gui, skin, map_formspec = ...; +local chunk, marker_lookup, gui, skin, audio, map_formspec = ...; -- The list of players looking at maps, and the map IDs that they're looking at local player_maps = {}; @@ -248,7 +248,7 @@ minetest.register_on_player_receive_fields(function(player, name, fields) local player_x, player_z = map:to_coordinates(pos.x, pos.z); map:set_marker(player_x, player_z, marker); - cartographer.map_sound("cartographer_write", player); + audio.play_feedback("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.height_mode, data.page - 1); @@ -317,7 +317,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) - cartographer.map_sound("cartographer_open_map", player); + audio.play_feedback("cartographer_open_map", player); show_map_meta(minetest.get_meta(pos), player); end, @@ -326,7 +326,7 @@ minetest.register_node("cartographer:map", { -- stack: The itemstack -- player: The player that used the item on_use = function(stack, player) - cartographer.map_sound("cartographer_open_map", player); + audio.play_feedback("cartographer_open_map", player); show_map_meta(stack:get_meta(), player); return stack; end, diff --git a/map_api.lua b/map_api.lua index d80c457..e7b1684 100644 --- a/map_api.lua +++ b/map_api.lua @@ -261,10 +261,3 @@ 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/table.lua b/table.lua index a5c7bca..1994a05 100644 --- a/table.lua +++ b/table.lua @@ -1,4 +1,4 @@ -local gui, gui_skin = ...; +local gui, gui_skin, audio = ...; local MAP_SIZE = 40; local SCALE_SMALL = 1; @@ -728,7 +728,7 @@ minetest.register_on_player_receive_fields(function(player, name, fields) inv:set_stack("output", 1, stack); end - cartographer.map_sound("cartographer_write", player); + audio.play_feedback("cartographer_write", player); end elseif fields["copy"] then local cost = get_copy_material_cost(meta); @@ -736,7 +736,7 @@ minetest.register_on_player_receive_fields(function(player, name, fields) meta:set_int("paper", meta:get_int("paper") - cost.paper); meta:set_int("pigment", meta:get_int("pigment") - cost.pigment); - cartographer.map_sound("cartographer_write", player); + audio.play_feedback("cartographer_write", player); local inv = meta:get_inventory(); inv:set_stack("copy_output", 1, cartographer.copy_map_item(inv:get_stack("copy_input", 1))); @@ -759,13 +759,13 @@ minetest.register_on_player_receive_fields(function(player, name, fields) meta:set_int("scale", SCALE_HUGE); elseif fields["tab1"] then player_tables[player:get_player_name()].tab = 1; - cartographer.map_sound("cartographer_turn_page", player); + audio.play_feedback("cartographer_turn_page", player); elseif fields["tab2"] then player_tables[player:get_player_name()].tab = 2; - cartographer.map_sound("cartographer_turn_page", player); + audio.play_feedback("cartographer_turn_page", player); elseif fields["tab3"] then player_tables[player:get_player_name()].tab = 3; - cartographer.map_sound("cartographer_turn_page", player); + audio.play_feedback("cartographer_turn_page", player); end if not fields["quit"] then @@ -864,7 +864,7 @@ minetest.register_node("cartographer:simple_table", { tab = 1, }; - cartographer.map_sound("cartographer_open_map", player); + audio.play_feedback("cartographer_open_map", player); table_formspec(player:get_player_name()) end, @@ -904,7 +904,7 @@ minetest.register_node("cartographer:standard_table", { tab = 1, }; - cartographer.map_sound("cartographer_open_map", player); + audio.play_feedback("cartographer_open_map", player); table_formspec(player:get_player_name()) end, @@ -944,7 +944,7 @@ minetest.register_node("cartographer:advanced_table", { tab = 1, }; - cartographer.map_sound("cartographer_open_map", player); + audio.play_feedback("cartographer_open_map", player); table_formspec(player:get_player_name()) end,