Skip to content

Commit

Permalink
Farming/fire: Add tool break sounds
Browse files Browse the repository at this point in the history
Add tool break sounds to hoes and flint and steel.
Flint and steel: Reduce gain of use sound and only add tool wear
if not in creative mode.
  • Loading branch information
paramat committed Nov 26, 2016
1 parent fd87b04 commit e837621
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
9 changes: 8 additions & 1 deletion mods/farming/api.lua
Expand Up @@ -50,15 +50,21 @@ farming.hoe_on_use = function(itemstack, user, pointed_thing, uses)
return
end

-- turn the node into soil, wear out item and play sound
-- turn the node into soil and play sound
minetest.set_node(pt.under, {name = regN[under.name].soil.dry})
minetest.sound_play("default_dig_crumbly", {
pos = pt.under,
gain = 0.5,
})

if not minetest.setting_getbool("creative_mode") then
-- wear tool
local wdef = itemstack:get_definition()
itemstack:add_wear(65535/(uses-1))
-- tool break sound
if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then
minetest.sound_play(wdef.sound.breaks, {pos = pt.above, gain = 0.5})
end
end
return itemstack
end
Expand Down Expand Up @@ -94,6 +100,7 @@ farming.register_hoe = function(name, def)
return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses)
end,
groups = def.groups,
sound = {breaks = "default_tool_breaks"},
})
-- Register its recipe
if def.material == nil then
Expand Down
12 changes: 10 additions & 2 deletions mods/fire/init.lua
Expand Up @@ -86,13 +86,14 @@ minetest.register_node("fire:permanent_flame", {
minetest.register_tool("fire:flint_and_steel", {
description = "Flint and Steel",
inventory_image = "fire_flint_steel.png",
sound = {breaks = "default_tool_breaks"},

on_use = function(itemstack, user, pointed_thing)
local pt = pointed_thing
minetest.sound_play(
"fire_flint_and_steel",
{pos = pt.above, gain = 0.6, max_hear_distance = 8}
{pos = pt.above, gain = 0.5, max_hear_distance = 8}
)
itemstack:add_wear(1000)
if pt.type == "node" then
local node_under = minetest.get_node(pt.under).name
local nodedef = minetest.registered_nodes[node_under]
Expand All @@ -112,6 +113,13 @@ minetest.register_tool("fire:flint_and_steel", {
end
end
if not minetest.setting_getbool("creative_mode") then
-- wear tool
local wdef = itemstack:get_definition()
itemstack:add_wear(1000)
-- tool break sound
if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then
minetest.sound_play(wdef.sound.breaks, {pos = pt.above, gain = 0.5})
end
return itemstack
end
end
Expand Down

0 comments on commit e837621

Please sign in to comment.