Upgraded the linker
This commit is contained in:
+56
-11
@@ -63,7 +63,7 @@ function logikraft.rotateCable(name,r)
|
||||
local newconn = {}
|
||||
for i,v in ipairs(conn)
|
||||
do
|
||||
newconn[i] = rotate4dir(v,r)
|
||||
newconn[i] = logikraft.rotate4dir(v,r)
|
||||
end
|
||||
table.sort(newconn)
|
||||
return logikraft.cableFromConns(newconn)
|
||||
@@ -101,8 +101,11 @@ end
|
||||
--[[
|
||||
Returns {newcablea,newcableb} if the two cables are contiguous
|
||||
Returns nil otherwise
|
||||
If namea or nameb is nil, no cable is present, and we create a single pin, or we connect to the conn in the direction
|
||||
If a or b is nil, we consider that
|
||||
--]]
|
||||
function logikraft.connectContiguousCable(namea,posa,a,nameb,posb,b)
|
||||
print("Connecting "..tostring(namea).." with "..tostring(nameb))
|
||||
local dira = (posa.y == posb.y) and (
|
||||
(posa.z + 1 == posb.z and posa.x == posb.x and 3) or
|
||||
(posa.x + 1 == posb.x and posa.z == posb.z and 2) or
|
||||
@@ -112,21 +115,63 @@ function logikraft.connectContiguousCable(namea,posa,a,nameb,posb,b)
|
||||
if dira == nil
|
||||
then return nil
|
||||
end
|
||||
|
||||
print(dira)
|
||||
print(logikraft.rotate4dir(4,math.fmod(dira,4)))
|
||||
if not namea
|
||||
then
|
||||
namea = logikraft.cableFromConns({logikraft.rotate4dir(4,6-dira)})
|
||||
a = 1 -- There is only one nodebox
|
||||
end
|
||||
if not nameb
|
||||
then
|
||||
nameb = logikraft.cableFromConns({logikraft.rotate4dir(4,4-dira)})
|
||||
b = 1 -- There is only one nodebox
|
||||
end
|
||||
|
||||
local cia
|
||||
if not a
|
||||
then
|
||||
cia = logikraft.connFromDir(namea,dira)
|
||||
if not cia
|
||||
then
|
||||
-- We need to add a tip to a
|
||||
local connsa = table.copy(logikraft.cables[namea].conns)
|
||||
table.insert(connsa,logikraft.rotate4dir(4,6-dira))
|
||||
table.sort(connsa)
|
||||
namea = logikraft.cableFromConns(connsa)
|
||||
cia = logikraft.connFromDir(namea,dira)
|
||||
end
|
||||
else
|
||||
cia = logikraft.cables[namea].nbToConn[a]
|
||||
end
|
||||
|
||||
local cib
|
||||
if not b
|
||||
then
|
||||
cib = logikraft.connFromDir(nameb,math.fmod(dira+2,4))
|
||||
if not cib
|
||||
then
|
||||
-- We need to add a tip to b
|
||||
local connsb = table.copy(logikraft.cables[nameb].conns)
|
||||
table.insert(connsb,logikraft.rotate4dir(4,4-dira))
|
||||
table.sort(connsb)
|
||||
nameb = logikraft.cableFromConns(connsb)
|
||||
cib = logikraft.connFromDir(nameb,math.fmod(dira+2,4))
|
||||
end
|
||||
else
|
||||
cib = logikraft.cables[nameb].nbToConn[b]
|
||||
end
|
||||
|
||||
print(namea)
|
||||
print(nameb)
|
||||
|
||||
local connsa = table.copy(logikraft.cables[namea].conns)
|
||||
local connsb = table.copy(logikraft.cables[nameb].conns)
|
||||
print(dump(connsa))
|
||||
print(dump(connsb))
|
||||
local cia = logikraft.cables[namea].nbToConn[a]
|
||||
local cib = logikraft.cables[nameb].nbToConn[b]
|
||||
--print(dump(connsa))
|
||||
--print(dump(connsb))
|
||||
local cia2 = logikraft.connFromDir(namea,dira)
|
||||
local cib2 = logikraft.connFromDir(nameb,math.fmod(dira+2,4))
|
||||
print(dira)
|
||||
print(cia)
|
||||
print(cia2)
|
||||
print(cib)
|
||||
print(cib2)
|
||||
|
||||
|
||||
-- (nba == nil) -> Need to add dira to the a
|
||||
-- (a == nba) -> Already connected
|
||||
|
||||
Reference in New Issue
Block a user