Use iterative algorithm for mesecon.find_receptor_on, major performance improvement for large

circuits.
This also fixes a crash introduced with the previous commit that occured when placing a wire
crossing.
This commit is contained in:
Jeija
2014-11-22 17:12:48 +01:00
parent 29dc50057c
commit d19e975955
4 changed files with 47 additions and 58 deletions

View File

@ -19,7 +19,7 @@ local wire_getconnect = function (from_pos, self_pos)
rules = mesecon.rules.default
else
rules = mesecon.get_any_inputrules(node) or {}
mesecon.mergetable(mesecon.get_any_outputrules(node) or {}, rules)
rules = mesecon.mergetable(mesecon.get_any_outputrules(node) or {}, rules)
end
for _, r in ipairs(mesecon.flattenrules(rules)) do
@ -80,7 +80,7 @@ local update_on_place_dig = function (pos, node)
rules = mesecon.rules.default
else
rules = mesecon.get_any_inputrules(node) or {}
mesecon.mergetable(mesecon.get_any_outputrules(node) or {}, rules)
rules = mesecon.mergetable(mesecon.get_any_outputrules(node) or {}, rules)
end
if (not rules) then return end