From: sfan5 Date: Fri, 8 Nov 2019 23:41:33 +0000 (+0100) Subject: Run on_item_use CSM callback even if item is not marked usable X-Git-Tag: 5.2.0~287 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3f271564e08716cfeb4a966f4291524b0fac05d3;p=oweals%2Fminetest.git Run on_item_use CSM callback even if item is not marked usable Mods may want to to handle item interaction even if the item is not marked usable (= server-side callback exists). --- 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); }