diff --git a/mods/default/README.txt b/mods/default/README.txt index be8cbf14..6c6b9b05 100644 --- a/mods/default/README.txt +++ b/mods/default/README.txt @@ -340,6 +340,10 @@ sonictechtonic (CC BY 3.0): https://www.freesound.org/people/sonictechtonic/sounds/241872/ player_damage.ogg +iankath (CC0 1.0) +https://freesound.org/people/iankath/sounds/173991/ + default_furnace_active.ogg + Models ------ diff --git a/mods/default/furnace.lua b/mods/default/furnace.lua index 3c4ac9c8..b63a8695 100644 --- a/mods/default/furnace.lua +++ b/mods/default/furnace.lua @@ -113,6 +113,9 @@ local function furnace_node_timer(pos, elapsed) local srclist, fuellist local dst_full = false + local timer_elapsed = meta:get_int("timer_elapsed") or 0 + meta:set_int("timer_elapsed", timer_elapsed + 1) + local cookable, cooked local fuel @@ -154,6 +157,9 @@ local function furnace_node_timer(pos, elapsed) else dst_full = true end + -- Play cooling sound + minetest.sound_play("default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.1}, true) else -- Item could not be cooked: probably missing fuel update = true @@ -237,6 +243,12 @@ local function furnace_node_timer(pos, elapsed) swap_node(pos, "default:furnace_active") -- make sure timer restarts automatically result = true + + -- Play sound every 5 seconds while the furnace is active + if timer_elapsed == 0 or (timer_elapsed+1) % 5 == 0 then + minetest.sound_play("default_furnace_active", + {pos = pos, max_hear_distance = 16, gain = 0.5}, true) + end else if fuellist and not fuellist[1]:is_empty() then fuel_state = S("@1%", 0) @@ -245,6 +257,7 @@ local function furnace_node_timer(pos, elapsed) swap_node(pos, "default:furnace") -- stop timer on the inactive furnace minetest.get_node_timer(pos):stop() + meta:set_int("timer_elapsed", 0) end diff --git a/mods/default/sounds/default_furnace_active.ogg b/mods/default/sounds/default_furnace_active.ogg new file mode 100644 index 00000000..536edc24 Binary files /dev/null and b/mods/default/sounds/default_furnace_active.ogg differ