Trigger on_rightclick regardless on the formspec meta field

Document behaviour for older clients.
This commit is contained in:
SmallJoker 2017-08-10 09:41:56 +02:00
parent c789c532bb
commit 037b01eac7
2 changed files with 9 additions and 2 deletions

@ -4261,9 +4261,11 @@ Definition tables
^ By default: Calls minetest.register_on_punchnode callbacks ]] ^ By default: Calls minetest.register_on_punchnode callbacks ]]
on_rightclick = func(pos, node, clicker, itemstack, pointed_thing), --[[ on_rightclick = func(pos, node, clicker, itemstack, pointed_thing), --[[
^ default: nil ^ default: nil
^ if defined, itemstack will hold clicker's wielded item ^ itemstack will hold clicker's wielded item
^ Shall return the leftover itemstack ^ 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), --[[ on_dig = func(pos, node, digger), --[[
^ default: minetest.node_dig ^ default: minetest.node_dig

@ -3801,6 +3801,11 @@ void Game::handlePointingAtNode(const PointedThing &pointed,
if (meta && meta->getString("formspec") != "" && !random_input if (meta && meta->getString("formspec") != "" && !random_input
&& !isKeyDown(KeyType::SNEAK)) { && !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; infostream << "Launching custom inventory view" << std::endl;
InventoryLocation inventoryloc; InventoryLocation inventoryloc;