Determining vehicle direction on roads
Posted: 20 Jul 2018, 04:25
How to change the standard movement on roads:
Remember, arrays start with 0.
Subtile Order of Each Road Tile:
..........
..... 2
. 0 3
..... 1
..........
Moving direction is the sum of:
(This is from one of the subtiles above; a vehicle has reached this spot, the sum equals the possible directions it can go from here.)
1
2
4
8
So, "No direction" would be 0. Thus the vehicle would stop and most likely despawn. All directions would be 15 (for intersections).
An example of dirs for a two way road (24 number array):
(Dirs need to be provided for the frame in the comments, the others are determined from these)
An example of dirs for a one way road (64 number array):
(One for each of the first 15 road frames, the others are adapted from these.)
Note: the numbers in these examples are from my b3.plugin, which allows non-standard road movements so that cars can switch lanes across 3 or more lanes from the inner 2 way road straight sections across the straight sections of the one way roads placed adjacent. Thus, the cars may be seen driving off the side of ramps.
Remember, arrays start with 0.
Subtile Order of Each Road Tile:
..........
..... 2
. 0 3
..... 1
..........
Moving direction is the sum of:
(This is from one of the subtiles above; a vehicle has reached this spot, the sum equals the possible directions it can go from here.)
1
2
4
8
So, "No direction" would be 0. Thus the vehicle would stop and most likely despawn. All directions would be 15 (for intersections).
An example of dirs for a two way road (24 number array):
(Dirs need to be provided for the frame in the comments, the others are determined from these)
Code: Select all
"dirs":[
12,9,3,6 , //0
1, 1, 8,4, //1
1,1, 8, 2, //3
9,9,6,6, //5
1, 3, 12, 6, //7
13,11,14,7 //15
]
(One for each of the first 15 road frames, the others are adapted from these.)
Code: Select all
"dirs":[
0,0,0,0,
1,1,1,1,
2,2,2,2,
1,1,9,1,
4,4,4,4,
9,9,3,3,
3,2,2,2,
3,3,3,3,
8,8,8,8,
3,3,1,1,
6,3,6,3,
3,3,3,3,
9,8,9,8,
9,9,9,9,
6,6,6,6,
11,11,11,11
]