graph LR
user_rc[User right clicks]

user_rc --> run_on_place

run_on_place{Is def.on_place specified?}
run_on_place -->|Yes| run[Run custom on_place]
run --> done
run_on_place -->|No, defaults to minetest.item_place| is_rightclickable

is_rightclickable{Is pointing at right clickable node?}
is_rightclickable -->|Yes| is_sneaking
is_rightclickable -->|No| is_node
is_sneaking{Is sneaking?}
is_sneaking -->|Yes| is_node
is_sneaking -->|No| rightclick[Call Rightclick of pointed at node]
rightclick --> done

is_node{def.type is node?}
is_node -->|yes| place_node[Place Node]
is_node -->|no| done
place_node --> done
