summaryrefslogtreecommitdiff
path: root/internal.lua
diff options
context:
space:
mode:
authorChristopher Head <chead@chead.ca>2017-02-19 15:15:00 -0800
committerAuke Kok <sofar+github@foo-projects.org>2017-02-28 22:13:19 -0800
commit84133a10df9f0c7d0d11e0ece8b5603e44208185 (patch)
tree9b968b71dfe2c5a2683d0abb57974126d138dcd1 /internal.lua
parent25ea72270dec5b0287b2a094d696bc807206b483 (diff)
Use `minetest.hash_node_position` for searches.
Previously, Digilines used concatenations of X/Y/Z coordinates into strings as keys to check for repeatedly visiting the same node during a graph search. Replace them with integer keys generated by `minetest.hash_node_position`, which should be more efficient.
Diffstat (limited to 'internal.lua')
-rw-r--r--internal.lua2
1 files changed, 1 insertions, 1 deletions
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)