X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=builtin%2Fgame%2Fitem.lua;h=513c3a5e194f2296de98d7d9d5ef725e162bf350;hb=548efbf16f25aa831b48616fd012b9e5e1963fd3;hp=d6c6469b34eb6a9c03dc8d71232795abd3c8f2e2;hpb=876a15bd7570f4cccf815a1d5e5588525e445cb1;p=dragonfireclient.git diff --git a/builtin/game/item.lua b/builtin/game/item.lua index d6c6469b3..513c3a5e1 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -305,9 +305,6 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2, return itemstack, nil end - log("action", playername .. " places node " - .. def.name .. " at " .. core.pos_to_string(place_to)) - local oldnode = core.get_node(place_to) local newnode = {name = def.name, param1 = 0, param2 = param2 or 0} @@ -333,7 +330,7 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2, z = above.z - placer_pos.z } newnode.param2 = core.dir_to_facedir(dir) - log("action", "facedir: " .. newnode.param2) + log("info", "facedir: " .. newnode.param2) end end @@ -364,9 +361,20 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2, return itemstack, nil end + log("action", playername .. " places node " + .. def.name .. " at " .. core.pos_to_string(place_to)) + -- Add node and update core.add_node(place_to, newnode) + -- Play sound if it was done by a player + if playername ~= "" and def.sounds and def.sounds.place then + core.sound_play(def.sounds.place, { + pos = place_to, + exclude_player = playername, + }, true) + end + local take_item = true -- Run callback @@ -467,7 +475,10 @@ function core.do_item_eat(hp_change, replace_with_item, itemstack, user, pointed user:set_hp(user:get_hp() + hp_change) if def and def.sound and def.sound.eat then - minetest.sound_play(def.sound.eat, { pos = user:get_pos(), max_hear_distance = 16 }) + core.sound_play(def.sound.eat, { + pos = user:get_pos(), + max_hear_distance = 16 + }, true) end if replace_with_item then @@ -574,7 +585,10 @@ function core.node_dig(pos, node, digger) if not core.settings:get_bool("creative_mode") then wielded:add_wear(dp.wear) if wielded:get_count() == 0 and wdef.sound and wdef.sound.breaks then - core.sound_play(wdef.sound.breaks, {pos = pos, gain = 0.5}) + core.sound_play(wdef.sound.breaks, { + pos = pos, + gain = 0.5 + }, true) end end end @@ -606,6 +620,14 @@ function core.node_dig(pos, node, digger) -- Remove node and update core.remove_node(pos) + -- Play sound if it was done by a player + if diggername ~= "" and def and def.sounds and def.sounds.dug then + core.sound_play(def.sounds.dug, { + pos = pos, + exclude_player = diggername, + }, true) + end + -- Run callback if def and def.after_dig_node then -- Copy pos and node because callback can modify them