minetest.register_craftitem("logikraft:rotator", { description = "The rotator", inventory_image = "rotator.png", on_place = function(itemstack, user, pointed_thing) local node = minetest.get_node(pointed_thing.under) if not string.startsWith(node.name,"logikraft:cable_") then return itemstack end local new = logikraft.rotateCable(string.without(node.name,"logikraft:cable_"),1) minetest.swap_node(pointed_thing.under, {name = "logikraft:cable_" .. new}) return itemstack end }) minetest.register_craftitem("logikraft:linker", { description = "The linker", inventory_image = "linker.png", on_place = function(itemstack, user, pointed_thing) local node = minetest.get_node(pointed_thing.under) if not string.startsWith(node.name,"logikraft:cable_") then return itemstack end local index = logikraft.lookingAtNbIndex(user,pointed_thing.under) -- We check if we clicked the last selected node local meta = minetest.get_meta(pointed_thing.under) if meta:get_int("logikraft:last_selected_nb") ~= 0 then -- We connect local firsti = meta:get_int("logikraft:last_selected_nb") local new = logikraft.connectInCable(string.without(node.name,"logikraft:cable_"),firsti,index) minetest.swap_node(pointed_thing.under, {name = "logikraft:cable_" .. new}) -- We destroy the saved selected nb meta:set_int("logikraft:last_selected_nb",0) else -- We save the selected nb meta:set_int("logikraft:last_selected_nb",index) end return itemstack end }) minetest.register_craftitem("logikraft:unlinker", { description = "The unlinker", inventory_image = "unlinker.png", on_place = function(itemstack, user, pointed_thing) local node = minetest.get_node(pointed_thing.under) if not string.startsWith(node.name,"logikraft:cable_") then return itemstack end local index = logikraft.lookingAtNbIndex(user,pointed_thing.under) local new = logikraft.disconnectInCable(string.without(node.name,"logikraft:cable_"),index) minetest.swap_node(pointed_thing.under, {name = "logikraft:cable_" .. new}) return itemstack end })