aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmallJoker <mk939@ymail.com>2017-08-10 09:41:56 +0200
committerparamat <mat.gregory@virginmedia.com>2017-08-13 21:37:30 +0100
commit4381fe0a0a0921e6ba79c072045be2dc04be646a (patch)
tree9c88996d20c6da156f87c3f193a8c358597ec5e6
parentfa7fe405095cbcdcdca3cf953a036bfd85d5b21d (diff)
downloadminetest-4381fe0a0a0921e6ba79c072045be2dc04be646a.tar.gz
minetest-4381fe0a0a0921e6ba79c072045be2dc04be646a.tar.bz2
minetest-4381fe0a0a0921e6ba79c072045be2dc04be646a.zip
Trigger on_rightclick regardless on the formspec meta field
Document behaviour for older clients.
-rw-r--r--doc/lua_api.txt6
-rw-r--r--src/game.cpp5
2 files changed, 9 insertions, 2 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index b9dc1b47f..b5ab30d58 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -4317,9 +4317,11 @@ Definition tables
^ By default: Calls minetest.register_on_punchnode callbacks ]]
on_rightclick = func(pos, node, clicker, itemstack, pointed_thing), --[[
^ default: nil
- ^ if defined, itemstack will hold clicker's wielded item
+ ^ itemstack will hold clicker's wielded item
^ Shall return the leftover itemstack
- ^ Note: pointed_thing can be nil, if a mod calls this function ]]
+ ^ Note: pointed_thing can be nil, if a mod calls this function
+ This function does not get triggered by clients <=0.4.16 if the
+ "formspec" node metadata field is set ]]
on_dig = func(pos, node, digger), --[[
^ default: minetest.node_dig
diff --git a/src/game.cpp b/src/game.cpp
index e34a02693..4588e21e0 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -3799,6 +3799,11 @@ void Game::handlePointingAtNode(const PointedThing &pointed,
if (meta && meta->getString("formspec") != "" && !random_input
&& !isKeyDown(KeyType::SNEAK)) {
+ // Report right click to server
+ if (nodedef_manager->get(map.getNodeNoEx(nodepos)).rightclickable) {
+ client->interact(3, pointed);
+ }
+
infostream << "Launching custom inventory view" << std::endl;
InventoryLocation inventoryloc;