diff --git a/clientmods/preview/init.lua b/clientmods/preview/init.lua index 96deae074..dd856217f 100644 --- a/clientmods/preview/init.lua +++ b/clientmods/preview/init.lua @@ -66,6 +66,10 @@ core.register_on_item_use(function(itemstack, pointed_thing) print("pointed_thing :" .. dump(pointed_thing)) print("item = " .. itemstack:get_name()) + if not itemstack:is_empty() then + return false + end + local pos = vector.add(core.localplayer:get_pos(), core.camera:get_offset()) local pos2 = vector.add(pos, vector.multiply(core.camera:get_look_dir(), 100)) diff --git a/src/client/game.cpp b/src/client/game.cpp index 450eb4e32..59654e892 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -3061,6 +3061,9 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) } else if (input->getLeftState()) { // When button is held down in air, show continuous animation runData.left_punch = true; + // Run callback even though item is not usable + if (input->getLeftClicked() && client->modsLoaded()) + client->getScript()->on_item_use(selected_item, pointed); } else if (input->getRightClicked()) { handlePointingAtNothing(selected_item); }