diff --git a/init.lua b/init.lua index 2f48a73..bffd4e7 100644 --- a/init.lua +++ b/init.lua @@ -9,7 +9,7 @@ dofile(modpath .. "/wire_std.lua") function digiline:receptor_send(pos, rules, channel, msg) local checked = {} - checked[tostring(pos.x).."_"..tostring(pos.y).."_"..tostring(pos.z)] = true -- exclude itself + checked[minetest.hash_node_position(pos)] = true -- exclude itself for _,rule in ipairs(rules) do if digiline:rules_link(pos, digiline:addPosRule(pos, rule)) then digiline:transmit(digiline:addPosRule(pos, rule), channel, msg, checked) diff --git a/internal.lua b/internal.lua index 96f84e7..45cd5d7 100644 --- a/internal.lua +++ b/internal.lua @@ -105,7 +105,7 @@ function digiline:transmit(pos, channel, msg, checked) for _, rule in ipairs(rules) do local nextPos = digiline:addPosRule(curPos, rule) if digiline:rules_link(curPos, nextPos) then - local checkedID = tostring(nextPos.x) .. "_" .. tostring(nextPos.y) .. "_" .. tostring(nextPos.z) + local checkedID = minetest.hash_node_position(nextPos) if not checked[checkedID] then checked[checkedID] = true queue_enqueue(queue, nextPos)