diff --git a/blocks/cable.lua b/blocks/cable.lua index 2d09ed1..ab390fa 100644 --- a/blocks/cable.lua +++ b/blocks/cable.lua @@ -455,6 +455,16 @@ function logikraft.disconnectInCable(name,a) then table.insert(conns,conn>=16 and 24 or 8) end end + table.sort(conns) + return table.getkey1(logikraft.cablesconn,conns) +end + +function logikraft.resizeInCable(name,a) + local conns = table.copy(logikraft.cablesconn[name]) + local cindex = logikraft.cablesnbconn[name][a] + + conns[cindex] = (conns[cindex] >= 16) and (conns[cindex] - 16) or (conns[cindex] + 16) + table.sort(conns) return table.getkey1(logikraft.cablesconn,conns) end \ No newline at end of file diff --git a/items.lua b/items.lua index f1c5dce..d0488e7 100644 --- a/items.lua +++ b/items.lua @@ -109,6 +109,23 @@ minetest.register_craftitem("logikraft:unlinker", { else minetest.remove_node(pointed_thing.under) end + return itemstack + end +}) +minetest.register_craftitem("logikraft:resizer", { + description = "The Resizer", + inventory_image = "resizer.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.resizeInCable(string.without(node.name,"logikraft:cable_"),index) + minetest.swap_node(pointed_thing.under, {name = "logikraft:cable_" .. new}) + return itemstack end }) \ No newline at end of file diff --git a/textures/resizer.png b/textures/resizer.png new file mode 100644 index 0000000..9213bde Binary files /dev/null and b/textures/resizer.png differ