forked from minetest-mods/mesecons
Fixes with multi-conductors that have special connects
This commit is contained in:
@ -62,18 +62,18 @@ function mesecon:rule2bit(findrule, allrules)
|
||||
end
|
||||
for m,metarule in ipairs( allrules) do
|
||||
for _, rule in ipairs(metarule ) do
|
||||
if mesecon:cmpPos(findrule, rule) then
|
||||
if mesecon:cmpPos(findrule, rule) and mesecon:cmpSpecial(findrule, rule) then
|
||||
return m
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function mesecon:rule2meta(findrule, allrules)
|
||||
function mesecon:rule2metaindex(findrule, allrules)
|
||||
--get the metarule the rule is in, or allrules
|
||||
|
||||
if allrules[1].x then
|
||||
return allrules
|
||||
return nil
|
||||
end
|
||||
|
||||
if not(findrule) then
|
||||
@ -82,13 +82,19 @@ function mesecon:rule2meta(findrule, allrules)
|
||||
|
||||
for m, metarule in ipairs( allrules) do
|
||||
for _, rule in ipairs(metarule ) do
|
||||
if mesecon:cmpPos(findrule, rule) then
|
||||
return metarule
|
||||
if mesecon:cmpPos(findrule, rule) and mesecon:cmpSpecial(findrule, rule) then
|
||||
return m
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function mesecon:rule2meta(findrule, allrules)
|
||||
local index = mesecon:rule2metaindex(findrule, allrules)
|
||||
if index == nil then return allrules end
|
||||
return allrules[index]
|
||||
end
|
||||
|
||||
if convert_base then
|
||||
print(
|
||||
"base2dec is tonumber(num,base1)\n"..
|
||||
@ -141,7 +147,7 @@ function mesecon:set_bit(binary,bit,value)
|
||||
end
|
||||
|
||||
function mesecon:invertRule(r)
|
||||
return {x = -r.x, y = -r.y, z = -r.z}
|
||||
return {x = -r.x, y = -r.y, z = -r.z, sx = r.sx, sy = r.sy, sz = r.sz}
|
||||
end
|
||||
|
||||
function mesecon:addPosRule(p, r)
|
||||
@ -152,6 +158,10 @@ function mesecon:cmpPos(p1, p2)
|
||||
return (p1.x == p2.x and p1.y == p2.y and p1.z == p2.z)
|
||||
end
|
||||
|
||||
function mesecon:cmpSpecial(r1, r2)
|
||||
return (r1.sx == r2.sx and r1.sy == r2.sy and r1.sz == r2.sz)
|
||||
end
|
||||
|
||||
function mesecon:tablecopy(table) -- deep table copy
|
||||
local newtable = {}
|
||||
|
||||
|
Reference in New Issue
Block a user