Enable three-way turnouts with proper conns support on all sides

I chose to make three-way turnouts have 5 conns (last one is not used) so
that they can be distinguished from crossings easily without refactoring the
code. Three-ways should have their last entry with {["3"]=0} instead as a sort
of internal mark.
This commit is contained in:
Blockhead 2020-09-11 17:18:45 +10:00
parent 1d224d6b4c
commit 487ca4e38c
2 changed files with 6 additions and 8 deletions

View File

@ -334,9 +334,10 @@ function advtrains.get_adjacent_rail(this_posnr, this_conns_p, conn_idx, drives_
end end
-- when a train enters a rail on connid 'conn', which connid will it go out? -- when a train enters a rail on connid 'conn', which connid will it go out?
-- nconns: number of connections in connection table -- nconns: number of connections in connection table:
-- 2 = straight rail; 3 = turnout, 4 = crossing, 5 = three-way turnout (5th entry is a stub)
-- returns: connid_out -- returns: connid_out
local connlku={[2]={2,1}, [3]={2,1,1}, [4]={2,1,4,3}} local connlku={[2]={2,1}, [3]={2,1,1}, [4]={2,1,4,3}, [5]={2,1,1,1}}
function advtrains.get_matching_conn(conn, nconns) function advtrains.get_matching_conn(conn, nconns)
return connlku[nconns][conn] return connlku[nconns][conn]
end end

View File

@ -124,8 +124,7 @@ advtrains.ap.t_s3way={
regstep=1, regstep=1,
variant={ variant={
l={ l={
--conns = conns6(0,7,0,8,0,9), conns = { {c=0}, {c=7}, {c=8}, {c=9}, {["3"]=0} },
conns = conns3(0,7,8),
desc = "3-way turnout (left)", desc = "3-way turnout (left)",
switchalt = "s", switchalt = "s",
--switchalt2 = , --switchalt2 = ,
@ -133,16 +132,14 @@ advtrains.ap.t_s3way={
switchst="l", switchst="l",
}, },
s={ s={
--conns = conns6(0,8,0,7,0,9), conns = { {c=0}, {c=8}, {c=7}, {c=9}, {["3"]=0} },
conns = conns3(0,8,7),
desc = "3-way turnout (straight)", desc = "3-way turnout (straight)",
switchalt ="r", switchalt ="r",
--switchmc = "on", --switchmc = "on",
switchst = "s", switchst = "s",
}, },
r={ r={
--conns = conns6(0,9,0,8,0,7), conns = { {c=0}, {c=9}, {c=8}, {c=7}, {["3"]=0} },
conns = conns3(0,9,8),
desc = "3-way turnout (right)", desc = "3-way turnout (right)",
switchalt = "l", switchalt = "l",
switchst="r" switchst="r"