aboutsummaryrefslogtreecommitdiff
path: root/advtrains_train_track/models/advtrains_dtrack_st.b3d
blob: c240416942f73b2495411f6cb708d346347066c0 (plain)
ofshex dumpascii
0000 42 42 33 44 d0 29 00 00 01 00 00 00 42 52 55 53 2e 00 00 00 01 00 00 00 42 72 75 73 68 2e 30 30 BB3D.)......BRUS........Brush.00
0020 31 00 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 00 00 01 00 00 00 00 00 00 00 ff ff 1....?...?...?...?..............
0040 ff ff 4e 4f 44 45 8e 29 00 00 64 74 72 61 63 6b 5f 73 74 00 00 00 00 00 00 00 00 bf 00 00 00 00 ..NODE.)..dtrack_st.............
0060 00 00 80 3f 00 00 80 3f 00 00 80 3f 69 21 a2 33 00 00 00 00 00 00 80 3f 00 00 00 00 4d 45 53 48 ...?...?...?i!.3.......?....MESH
0080 54 29 00 00 ff ff ff ff 56 52 54 53 0c 23 00 00 01 00 00 00 01 00 00 00 02 00 00 00 4d 88 a8 3e T)......VRTS.#..............M..>
00a0 28 b1 02 bd 9c b7 2f 3e 6a 03 35 bf 00 00 00 00 6a 03 35 3f 40 d6 23 3f a0 18 2b 3f 4d 88 a8 3e (...../>j.5.....j.5?@.#?..+?M..>
00c0 28 b1 02 bd 9c b7 2f be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 42 d6 23 3f 84 14 62 3f 4d 88 a8 3e (...../.j.5.....j.5.B.#?..b?M..>
00e0 3e 53 07 3e 9c b7 2f be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf 08 1f 3e 3f 84 14 62 3f 4d 88 a8 3e >S.>../.(...(..?(.....>?..b?M..>
0100 3e 53 07 3e 9c b7 2f 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 07 1f 3e 3f a0 18 2b 3f 4d 88 a8 3e >S.>../>(...(..?(..?..>?..+?M..>
0120 3e 53 07 3e 9c b7 2f 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 07 1f 3e 3f a0 18 2b 3f f6 af ec 3e >S.>../>(...(..?(..?..>?..+?...>
0140 3e 53 07 3e 9c b7 2f 3e 00 00 00 00 6a 03 35 3f 6a 03 35 3f 9b 72 53 3f a0 18 2b 3f f6 af ec 3e >S.>../>....j.5?j.5?.rS?..+?...>
0160 28 b1 02 bd 9c b7 2f 3e 00 00 00 00 00 00 00 00 00 00 80 3f 9a 72 53 3f d8 cf 10 3f 4d 88 a8 3e (...../>...........?.rS?...?M..>
0180 28 b1 02 bd 9c b7 2f 3e 6a 03 35 bf 00 00 00 00 6a 03 35 3f 07 1f 3e 3f d8 cf 10 3f 4d 88 a8 3e (...../>j.5.....j.5?..>?...?M..>
01a0 28 b1 02 bd 9c b7 2f be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 08 1f 3e 3f 4b 5d 7c 3f f6 af ec 3e (...../.j.5.....j.5...>?K]|?...>
01c0 28 b1 02 bd 9c b7 2f be 00 00 00 00 00 00 00 00 00 00 80 bf 9b 72 53 3f 4a 5d 7c 3f f6 af ec 3e (...../..............rS?J]|?...>
01e0 3e 53 07 3e 9c b7 2f be 00 00 00 00 6a 03 35 3f 6a 03 35 bf 9b 72 53 3f 84 14 62 3f 4d 88 a8 3e >S.>../.....j.5?j.5..rS?..b?M..>
0200 3e 53 07 3e 9c b7 2f be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf 08 1f 3e 3f 84 14 62 3f f6 af ec 3e >S.>../.(...(..?(.....>?..b?...>
0220 3e 53 07 3e 9c b7 2f be 00 00 00 00 6a 03 35 3f 6a 03 35 bf 9b 72 53 3f 84 14 62 3f f6 af ec 3e >S.>../.....j.5?j.5..rS?..b?...>
0240 3e 53 07 3e 9c b7 2f 3e 00 00 00 00 6a 03 35 3f 6a 03 35 3f 9b 72 53 3f a0 18 2b 3f 4d 88 a8 3e >S.>../>....j.5?j.5?.rS?..+?M..>
0260 3e 53 07 3e 9c b7 2f 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 07 1f 3e 3f a0 18 2b 3f 4d 88 a8 3e >S.>../>(...(..?(..?..>?..+?M..>
0280 3e 53 07 3e 9c b7 2f be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf 08 1f 3e 3f 84 14 62 3f b2 5d ff 3e >S.>../.(...(..?(.....>?..b?.].>
02a0 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf 2e b0 11 3f 2a f2 33 3f ad 5d ff 3e ..u=.......>-..>..]....?*.3?.].>
02c0 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 23 b0 11 3f c8 e0 9d 3d ad 5d ff 3e ..u=...?...>-..>..]?#..?...=.].>
02e0 af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 6e ad 09 3f c8 e0 9d 3d b2 5d ff 3e .G.=...?ke.>5a....b?n..?...=.].>
0300 af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf 7e ad 09 3f 2a f2 33 3f 8f 17 d3 3e .G.=....ka.>5a....b.~..?*.3?...>
0320 0b d7 23 3d f9 ff ff be 35 ad 9a be de d7 6e 3f 90 31 48 be fa c0 ae 3e 2e f2 33 3f 5f b7 f2 3e ..#=....5.....n?.1H....>..3?_..>
0340 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 89 8e c3 3e 2d f2 33 3f 5c b7 f2 3e ..u=........-..>..]....>-.3?\..>
0360 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f 80 8e c3 3e e8 e0 9d 3d 8a 17 d3 3e ..u=...?....-..>..]?...>...=...>
0380 0b d7 23 3d 04 00 00 3f 35 ad 9a be de d7 6e 3f 90 31 48 3e 09 c1 ae 3e f0 e0 9d 3d 8a 17 d3 3e ..#=...?5.....n?.1H>...>...=...>
03a0 0b d7 23 3d 04 00 00 3f 35 ad 9a be de d7 6e 3f 90 31 48 3e 64 b7 db 3e c0 ac 6d 3c 5c b7 f2 3e ..#=...?5.....n?.1H>d..>..m<\..>
03c0 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f fa 81 ef 3e 20 5f dd 3c ad 5d ff 3e ..u=...?....-..>..]?...>._.<.].>
03e0 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 99 6c f7 3e 20 5f dd 3c be 7e 0f 3f ..u=...?...>-..>..]?.l.>._.<.~.?
0400 0b d7 23 3d 04 00 00 3f 35 ad 9a 3e de d7 6e 3f 90 31 48 3e 96 9b 05 3f c0 ab 6d 3c be 7e 0f 3f ..#=...?5..>..n?.1H>...?..m<.~.?
0420 0b d7 23 3d 04 00 00 3f 35 ad 9a 3e de d7 6e 3f 90 31 48 3e ea 16 1c 3f d0 e0 9d 3d ad 5d ff 3e ..#=...?5..>..n?.1H>...?...=.].>
0440 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 23 b0 11 3f c8 e0 9d 3d b2 5d ff 3e ..u=...?...>-..>..]?#..?...=.].>
0460 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf 2e b0 11 3f 2a f2 33 3f c0 7e 0f 3f ..u=.......>-..>..]....?*.3?.~.?
0480 0b d7 23 3d fb ff ff be 35 ad 9a 3e de d7 6e 3f 90 31 48 be ea 16 1c 3f 29 f2 33 3f 5f b7 f2 3e ..#=....5..>..n?.1H....?).3?_..>
04a0 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 3e 82 ef 3e 51 c3 40 3f 8f 17 d3 3e ..u=........-..>..].>..>Q.@?...>
04c0 0b d7 23 3d f9 ff ff be 35 ad 9a be de d7 6e 3f 90 31 48 be b8 b7 db 3e 9a f7 43 3f c0 7e 0f 3f ..#=....5.....n?.1H....>..C?.~.?
04e0 0b d7 23 3d fb ff ff be 35 ad 9a 3e de d7 6e 3f 90 31 48 be b8 9b 05 3f 96 f7 43 3f b2 5d ff 3e ..#=....5..>..n?.1H....?..C?.].>
0500 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf e0 6c f7 3e 50 c3 40 3f b2 5d ff 3e ..u=.......>-..>..]..l.>P.@?.].>
0520 af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf de 6c f7 3e 98 c0 38 3f 5f b7 f2 3e .G.=....ka.>5a....b..l.>..8?_..>
0540 af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f 5f b7 f2 3e .G.=....ka..5a....b.<..>..8?_..>
0560 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 3e 82 ef 3e 51 c3 40 3f b2 5d ff 3e ..u=........-..>..].>..>Q.@?.].>
0580 90 c2 75 3d f8 ff ff be 9e 11 cf 3e 2d 99 96 3e bb ad 5d bf e0 6c f7 3e 50 c3 40 3f 5f b7 f2 3e ..u=.......>-..>..]..l.>P.@?_..>
05a0 90 c2 75 3d f5 ff ff be 9e 11 cf be 2d 99 96 3e bb ad 5d bf 89 8e c3 3e 2d f2 33 3f 5f b7 f2 3e ..u=........-..>..]....>-.3?_..>
05c0 af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf f4 93 d3 3e 2d f2 33 3f 5c b7 f2 3e .G.=....ka..5a....b....>-.3?\..>
05e0 af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f e1 93 d3 3e d8 e0 9d 3d 5c b7 f2 3e .G.=...?ka..5a....b?...>...=\..>
0600 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f 80 8e c3 3e e8 e0 9d 3d ad 5d ff 3e ..u=...?....-..>..]?...>...=.].>
0620 90 c2 75 3d 04 00 00 3f 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 99 6c f7 3e 20 5f dd 3c 5c b7 f2 3e ..u=...?...>-..>..]?.l.>._.<\..>
0640 90 c2 75 3d 08 00 00 3f 9e 11 cf be 2d 99 96 3e bb af 5d 3f fa 81 ef 3e 20 5f dd 3c 5c b7 f2 3e ..u=...?....-..>..]?...>._.<\..>
0660 af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d ad 5d ff 3e .G.=...?ka..5a....b?...>..n=.].>
0680 af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 9a 6c f7 3e f0 da 6e 3d b2 5d ff 3e .G.=...?ke.>5a....b?.l.>..n=.].>
06a0 af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf 7e ad 09 3f 2a f2 33 3f ad 5d ff 3e .G.=....ka.>5a....b.~..?*.3?.].>
06c0 af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 6e ad 09 3f c8 e0 9d 3d ca 96 07 3f .G.=...?ke.>5a....b?n..?...=...?
06e0 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f 4c aa 04 3f e0 e0 9d 3d cd 96 07 3f ...=...?<..?.k..,..?L..?...=...?
0700 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 64 aa 04 3f 2a f2 33 3f 5c b7 f2 3e ...=....<..?.k..,...d..?*.3?\..>
0720 af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f e1 93 d3 3e d8 e0 9d 3d 5f b7 f2 3e .G.=...?ka..5a....b?...>...=_..>
0740 af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf f4 93 d3 3e 2d f2 33 3f 77 e7 e2 3e .G.=....ka..5a....b....>-.3?w..>
0760 20 85 eb 3d f5 ff ff be 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf 3a 9a dd 3e 2c f2 33 3f 74 e7 e2 3e ...=....<....k..,...:..>,.3?t..>
0780 20 85 eb 3d 08 00 00 3f 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 14 9a dd 3e e0 e0 9d 3d cd 96 07 3f ...=...?<....k..,..?...>...=...?
07a0 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 64 aa 04 3f 2a f2 33 3f ca 96 07 3f ...=....<..?.k..,...d..?*.3?...?
07c0 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f 4c aa 04 3f e0 e0 9d 3d ca 96 07 3f ...=...?<..?.k..,..?L..?...=...?
07e0 29 5c 0f 3e 04 00 00 3f 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f2 a8 00 3f e0 e0 9d 3d cd 96 07 3f )\.>...?(..?(..?(..?...?...=...?
0800 29 5c 0f 3e f8 ff ff be 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf 14 a9 00 3f 2a f2 33 3f 74 e7 e2 3e )\.>....(..?(..?(......?*.3?t..>
0820 20 85 eb 3d 08 00 00 3f 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 14 9a dd 3e e0 e0 9d 3d 77 e7 e2 3e ...=...?<....k..,..?...>...=w..>
0840 20 85 eb 3d f5 ff ff be 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf 3a 9a dd 3e 2c f2 33 3f 77 e7 e2 3e ...=....<....k..,...:..>,.3?w..>
0860 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 74 e7 e2 3e )\.>....(...(..?(......>,.3?t..>
0880 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d ca 96 07 3f )\.>...?(...(..?(..?...>...=...?
08a0 29 5c 0f 3e 04 00 00 3f 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f2 a8 00 3f e0 e0 9d 3d 74 e7 e2 3e )\.>...?(..?(..?(..?...?...=t..>
08c0 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d 77 e7 e2 3e )\.>...?(...(..?(..?...>...=w..>
08e0 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f cd 96 07 3f )\.>....(...(..?(......>,.3?...?
0900 29 5c 0f 3e f8 ff ff be 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf 14 a9 00 3f 2a f2 33 3f 5f b7 f2 3e )\.>....(..?(..?(......?*.3?_..>
0920 af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f 77 e7 e2 3e .G.=....ka..5a....b.<..>..8?w..>
0940 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 77 e7 e2 3e )\.>....(...(..?(......>,.3?w..>
0960 20 85 eb 3d f5 ff ff be 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf f0 9c e5 3e 88 f3 37 3f cd 96 07 3f ...=....<....k..,......>..7?...?
0980 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 15 a9 00 3f 86 f3 37 3f cd 96 07 3f ...=....<..?.k..,......?..7?...?
09a0 29 5c 0f 3e f8 ff ff be 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf 14 a9 00 3f 2a f2 33 3f 77 e7 e2 3e )\.>....(..?(..?(......?*.3?w..>
09c0 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 5f b7 f2 3e )\.>....(...(..?(......>,.3?_..>
09e0 af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f b2 5d ff 3e .G.=....ka..5a....b.<..>..8?.].>
0a00 af 47 e1 3d f8 ff ff be 6b 61 b5 3e 35 61 9a be c5 99 62 bf de 6c f7 3e 98 c0 38 3f cd 96 07 3f .G.=....ka.>5a....b..l.>..8?...?
0a20 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 15 a9 00 3f 86 f3 37 3f 5f b7 f2 3e ...=....<..?.k..,......?..7?_..>
0a40 af 47 e1 3d f5 ff ff be 6b 61 b5 be 35 61 9a be c5 99 62 bf 3c 82 ef 3e 99 c0 38 3f cd 96 07 3f .G.=....ka..5a....b.<..>..8?...?
0a60 20 85 eb 3d f8 ff ff be 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 15 a9 00 3f 86 f3 37 3f 77 e7 e2 3e ...=....<..?.k..,......?..7?w..>
0a80 29 5c 0f 3e f5 ff ff be 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f0 9c e5 3e 2c f2 33 3f 5c b7 f2 3e )\.>....(...(..?(......>,.3?\..>
0aa0 af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d ca 96 07 3f .G.=...?ka..5a....b?...>..n=...?
0ac0 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f2 a8 00 3f 00 ac 7b 3d ad 5d ff 3e ...=...?<..?.k..,..?...?..{=.].>
0ae0 af 47 e1 3d 04 00 00 3f 6b 65 b5 3e 35 61 9a be c5 99 62 3f 9a 6c f7 3e f0 da 6e 3d 74 e7 e2 3e .G.=...?ke.>5a....b?.l.>..n=t..>
0b00 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d ca 96 07 3f )\.>...?(...(..?(..?...>...=...?
0b20 29 5c 0f 3e 04 00 00 3f 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f2 a8 00 3f e0 e0 9d 3d ca 96 07 3f )\.>...?(..?(..?(..?...?...=...?
0b40 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f2 a8 00 3f 00 ac 7b 3d 5c b7 f2 3e ...=...?<..?.k..,..?...?..{=\..>
0b60 af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d 74 e7 e2 3e .G.=...?ka..5a....b?...>..n=t..>
0b80 20 85 eb 3d 08 00 00 3f 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f b3 9c e5 3e 00 ac 7b 3d 74 e7 e2 3e ...=...?<....k..,..?...>..{=t..>
0ba0 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d 5c b7 f2 3e )\.>...?(...(..?(..?...>...=\..>
0bc0 af 47 e1 3d 08 00 00 3f 6b 61 b5 be 35 61 9a be c5 99 62 3f fb 81 ef 3e 00 db 6e 3d 74 e7 e2 3e .G.=...?ka..5a....b?...>..n=t..>
0be0 29 5c 0f 3e 08 00 00 3f 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f b2 9c e5 3e d8 e0 9d 3d ca 96 07 3f )\.>...?(...(..?(..?...>...=...?
0c00 20 85 eb 3d 04 00 00 3f 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f2 a8 00 3f 00 ac 7b 3d dc be 3d 3f ...=...?<..?.k..,..?...?..{=..=?
0c20 0e d7 23 3d 4c b8 de be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e0 be 3d 3f ..#=L...(..?(..?(....su?`..=..=?
0c40 0e d7 23 3d a7 47 a1 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 3f e3 39 62 3f 20 86 19 3d dc be 3d bf ..#=.G..(..?(..?(..?.9b?...=..=.
0c60 0e d7 23 3d af 47 a1 be 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f e6 be 3d bf ..#=.G..(...(..?(..?.9b?..w?..=.
0c80 0e d7 23 3d 4f b8 de be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f e2 be 3d 3f ..#=O...(...(..?(...zsu?..w?..=?
0ca0 fd d6 23 bc 4c b8 de be 6a 03 35 3f 00 00 00 00 6a 03 35 bf 39 76 7d 3f 10 86 19 3d dc be 3d 3f ..#.L...j.5?....j.5.9v}?...=..=?
0cc0 0e d7 23 3d 4c b8 de be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e6 be 3d bf ..#=L...(..?(..?(....su?`..=..=.
0ce0 0e d7 23 3d 4f b8 de be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f dd be 3d bf ..#=O...(...(..?(...zsu?..w?..=.
0d00 fd d6 23 bc 53 b8 de be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 3b 76 7d 3f 92 16 77 3f dd be 3d bf ..#.S...j.5.....j.5.;v}?..w?..=.
0d20 fd d6 23 bc 53 b8 de be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 78 73 75 3f 4d 19 7f 3f e6 be 3d bf ..#.S...j.5.....j.5.xsu?M..?..=.
0d40 0e d7 23 3d 4f b8 de be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f dc be 3d bf ..#=O...(...(..?(...zsu?..w?..=.
0d60 0e d7 23 3d af 47 a1 be 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f de be 3d bf ..#=.G..(...(..?(..?.9b?..w?..=.
0d80 fd d6 23 bc af 47 a1 be 6a 03 35 bf 00 00 00 00 6a 03 35 3f c1 39 62 3f 44 19 7f 3f de be 3d bf ..#..G..j.5.....j.5?.9b?D..?..=.
0da0 fd d6 23 bc af 47 a1 be 6a 03 35 bf 00 00 00 00 6a 03 35 3f 16 37 5a 3f 90 16 77 3f dc be 3d bf ..#..G..j.5.....j.5?.7Z?..w?..=.
0dc0 0e d7 23 3d af 47 a1 be 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f e0 be 3d 3f ..#=.G..(...(..?(..?.9b?..w?..=?
0de0 0e d7 23 3d a7 47 a1 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 3f e3 39 62 3f 20 86 19 3d e5 be 3d 3f ..#=.G..(..?(..?(..?.9b?...=..=?
0e00 fd d6 23 bc a7 47 a1 be 6a 03 35 3f 00 00 00 00 6a 03 35 3f 21 37 5a 3f d0 85 19 3d dc be 3d 3f ..#..G..j.5?....j.5?!7Z?...=..=?
0e20 0e d7 23 3d 4c b8 de be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e2 be 3d 3f ..#=L...(..?(..?(....su?`..=..=?
0e40 fd d6 23 bc 4c b8 de be 6a 03 35 3f 00 00 00 00 6a 03 35 bf 8b 73 75 3f 00 db ca 3b e5 be 3d 3f ..#.L...j.5?....j.5..su?...;..=?
0e60 fd d6 23 bc a7 47 a1 be 6a 03 35 3f 00 00 00 00 6a 03 35 3f e5 39 62 3f 00 d9 ca 3b e0 be 3d 3f ..#..G..j.5?....j.5?.9b?...;..=?
0e80 0e d7 23 3d a7 47 a1 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 3f e3 39 62 3f 20 86 19 3d 97 39 40 bc ..#=.G..(..?(..?(..?.9b?...=.9@.
0ea0 96 44 38 40 f5 ff ff be 6a 03 35 bf 6a 03 35 bf 00 00 00 00 78 ca 27 3f 7c 27 23 3f 97 39 40 bc .D8@....j.5.j.5.....x.'?|'#?.9@.
0ec0 f0 a6 39 40 f2 ff ff be 6a 03 35 bf 6a 03 35 3f 00 00 00 00 84 41 2b 3f 7a 27 23 3f e9 39 40 bc ..9@....j.5.j.5?.....A+?z'#?.9@.
0ee0 f0 a6 39 40 06 00 00 3f 6a 03 35 bf 6a 03 35 3f 00 00 00 00 73 41 2b 3f c0 69 3c 3c e9 39 40 bc ..9@...?j.5.j.5?....sA+?.i<<.9@.
0f00 96 44 38 40 09 00 00 3f 6a 03 35 bf 6a 03 35 bf 00 00 00 00 5a ca 27 3f 80 69 3c 3c 77 38 40 3c .D8@...?j.5.j.5.....Z.'?.i<<w8@<
0f20 96 44 38 40 06 00 00 3f 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e5 7a 32 3f c0 69 3c 3c 77 38 40 3c .D8@...?j.5?j.5......z2?.i<<w8@<
0f40 f0 a6 39 40 02 00 00 3f 6a 03 35 3f 6a 03 35 3f 00 00 00 00 d8 03 2f 3f 80 6a 3c 3c c9 38 40 3c ..9@...?j.5?j.5?....../?.j<<.8@<
0f60 f0 a6 39 40 01 00 00 bf 6a 03 35 3f 6a 03 35 3f 00 00 00 00 e5 03 2f 3f 7e 27 23 3f c9 38 40 3c ..9@....j.5?j.5?....../?~'#?.8@<
0f80 96 44 38 40 f6 ff ff be 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e0 7a 32 3f 7a 27 23 3f 97 39 40 bc .D8@....j.5?j.5......z2?z'#?.9@.
0fa0 96 44 38 40 f5 ff ff be 6a 03 35 bf 6a 03 35 bf 00 00 00 00 47 3d 36 3f 7b 27 23 3f e9 39 40 bc .D8@....j.5.j.5.....G=6?{'#?.9@.
0fc0 96 44 38 40 09 00 00 3f 6a 03 35 bf 6a 03 35 bf 00 00 00 00 47 3d 36 3f 40 69 3c 3c 77 38 40 3c .D8@...?j.5.j.5.....G=6?@i<<w8@<
0fe0 96 44 38 40 06 00 00 3f 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e5 7a 32 3f c0 69 3c 3c c9 38 40 3c .D8@...?j.5?j.5......z2?.i<<.8@<
1000 96 44 38 40 f6 ff ff be 6a 03 35 3f 6a 03 35 bf 00 00 00 00 e0 7a 32 3f 7a 27 23 3f 97 39 40 bc .D8@....j.5?j.5......z2?z'#?.9@.
1020 f0 a6 39 40 f2 ff ff be 6a 03 35 bf 6a 03 35 3f 00 00 00 00 84 41 2b 3f 7a 27 23 3f c9 38 40 3c ..9@....j.5.j.5?.....A+?z'#?.8@<
1040 f0 a6 39 40 01 00 00 bf 6a 03 35 3f 6a 03 35 3f 00 00 00 00 e5 03 2f 3f 7e 27 23 3f 77 38 40 3c ..9@....j.5?j.5?....../?~'#?w8@<
1060 f0 a6 39 40 02 00 00 3f 6a 03 35 3f 6a 03 35 3f 00 00 00 00 d8 03 2f 3f 80 6a 3c 3c e9 39 40 bc ..9@...?j.5?j.5?....../?.j<<.9@.
1080 f0 a6 39 40 06 00 00 3f 6a 03 35 bf 6a 03 35 3f 00 00 00 00 73 41 2b 3f c0 69 3c 3c b2 5d ff be ..9@...?j.5.j.5?....sA+?.i<<.]..
10a0 90 c2 75 3d f8 ff ff 3e 9e 11 cf be 2d 99 96 3e bb ad 5d 3f 2e b0 11 3f 2a f2 33 3f af 5d ff be ..u=...>....-..>..]?...?*.3?.]..
10c0 90 c2 75 3d 04 00 00 bf 9e 11 cf be 2d 99 96 3e bb ad 5d bf 23 b0 11 3f c8 e0 9d 3d af 5d ff be ..u=........-..>..].#..?...=.]..
10e0 b0 47 e1 3d 04 00 00 bf 6b 65 b5 be 35 61 9a be c5 99 62 bf 6e ad 09 3f c8 e0 9d 3d b2 5d ff be .G.=....ke..5a....b.n..?...=.]..
1100 b0 47 e1 3d f8 ff ff 3e 6b 61 b5 be 35 61 9a be c5 99 62 3f 7e ad 09 3f 2a f2 33 3f 8d 17 d3 be .G.=...>ka..5a....b?~..?*.3?....
1120 08 d7 23 3d fb ff ff 3e 35 ad 9a 3e de d7 6e 3f 90 31 48 3e fa c0 ae 3e 2e f2 33 3f 5d b7 f2 be ..#=...>5..>..n?.1H>...>..3?]...
1140 90 c2 75 3d f7 ff ff 3e 9e 11 cf 3e 2d 99 96 3e bb ad 5d 3f 89 8e c3 3e 2d f2 33 3f 5c b7 f2 be ..u=...>...>-..>..]?...>-.3?\...
1160 90 c2 75 3d 08 00 00 bf 9e 11 cf 3e 2d 99 96 3e bb af 5d bf 80 8e c3 3e e8 e0 9d 3d 8a 17 d3 be ..u=.......>-..>..]....>...=....
1180 08 d7 23 3d 04 00 00 bf 35 ad 9a 3e de d7 6e 3f 90 31 48 be 09 c1 ae 3e f0 e0 9d 3d 8a 17 d3 be ..#=....5..>..n?.1H....>...=....
11a0 08 d7 23 3d 04 00 00 bf 35 ad 9a 3e de d7 6e 3f 90 31 48 be 64 b7 db 3e c0 ac 6d 3c 5c b7 f2 be ..#=....5..>..n?.1H. if data.tcbs then track_circuit_breaks = data.tcbs end if data.ts then track_sections = data.ts end if data.signalass then signal_assignments = data.signalass end if data.rs_locks then advtrains.interlocking.route.rte_locks = data.rs_locks end if data.rs_callbacks then advtrains.interlocking.route.rte_callbacks = data.rs_callbacks end if data.influence_points then influence_points = data.influence_points end if data.npr_rails then advtrains.interlocking.npr_rails = data.npr_rails end --COMPATIBILITY to Signal aspect format -- TODO remove in time... for pts,tcb in pairs(track_circuit_breaks) do for connid, tcbs in ipairs(tcb) do if tcbs.routes then for _,route in ipairs(tcbs.routes) do if route.aspect then -- transform the signal aspect format local asp = route.aspect if type(asp.main) == "table" then atwarn("Transforming route aspect of signal",pts,"/",connid,"") if asp.main.free then asp.main = asp.main.speed else asp.main = 0 end if asp.dst.free then asp.dst = asp.dst.speed else asp.dst = 0 end asp.proceed_as_main = asp.shunt.proceed_as_main asp.shunt = asp.shunt.free -- Note: info table not transferred, it's not used right now end end end end end end end function ildb.save() return { tcbs = track_circuit_breaks, ts=track_sections, signalass = signal_assignments, rs_locks = advtrains.interlocking.route.rte_locks, rs_callbacks = advtrains.interlocking.route.rte_callbacks, influence_points = influence_points, npr_rails = advtrains.interlocking.npr_rails, } end1580 20 85 eb 3d 08 00 00 bf 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 14 9a dd 3e e0 e0 9d 3d cb 96 07 bf ...=....<..?.k..,......>...=....
15a0 20 85 eb 3d fa ff ff 3e 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 64 aa 04 3f 2a f2 33 3f ca 96 07 bf ...=...><....k..,..?d..?*.3?....
15c0 20 85 eb 3d 04 00 00 bf 3c ed 1d bf 0d 6b 06 bf 2c 15 16 bf 4c aa 04 3f e0 e0 9d 3d ca 96 07 bf ...=....<....k..,...L..?...=....
15e0 28 5c 0f 3e 04 00 00 bf 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f2 a8 00 3f e0 e0 9d 3d cb 96 07 bf (\.>....(...(..?(......?...=....
1600 28 5c 0f 3e fa ff ff 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 14 a9 00 3f 2a f2 33 3f 74 e7 e2 be (\.>...>(...(..?(..?...?*.3?t...
1620 20 85 eb 3d 08 00 00 bf 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 bf 14 9a dd 3e e0 e0 9d 3d 75 e7 e2 be ...=....<..?.k..,......>...=u...
1640 20 85 eb 3d f7 ff ff 3e 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f 3a 9a dd 3e 2c f2 33 3f 75 e7 e2 be ...=...><..?.k..,..?:..>,.3?u...
1660 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f 74 e7 e2 be (\.>...>(..?(..?(..?...>,.3?t...
1680 28 5c 0f 3e 08 00 00 bf 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf b2 9c e5 3e d8 e0 9d 3d ca 96 07 bf (\.>....(..?(..?(......>...=....
16a0 28 5c 0f 3e 04 00 00 bf 28 cd 13 bf 28 cd 13 3f 28 cd 13 bf f2 a8 00 3f e0 e0 9d 3d 74 e7 e2 be (\.>....(...(..?(......?...=t...
16c0 28 5c 0f 3e 08 00 00 bf 28 cd 13 3f 28 cd 13 3f 28 cd 13 bf b2 9c e5 3e d8 e0 9d 3d 75 e7 e2 be (\.>....(..?(..?(......>...=u...
16e0 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f cb 96 07 bf (\.>...>(..?(..?(..?...>,.3?....
1700 28 5c 0f 3e fa ff ff 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 14 a9 00 3f 2a f2 33 3f 5d b7 f2 be (\.>...>(...(..?(..?...?*.3?]...
1720 b0 47 e1 3d f7 ff ff 3e 6b 61 b5 3e 35 61 9a be c5 99 62 3f 3c 82 ef 3e 99 c0 38 3f 75 e7 e2 be .G.=...>ka.>5a....b?<..>..8?u...
1740 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f 75 e7 e2 be (\.>...>(..?(..?(..?...>,.3?u...
1760 20 85 eb 3d f7 ff ff 3e 3c ed 1d 3f 0d 6b 06 bf 2c 15 16 3f f0 9c e5 3e 88 f3 37 3f cb 96 07 bf ...=...><..?.k..,..?...>..7?....
1780 20 85 eb 3d fa ff ff 3e 3c ed 1d bf 0d 6b 06 bf 2c 15 16 3f 15 a9 00 3f 86 f3 37 3f cb 96 07 bf ...=...><....k..,..?...?..7?....
17a0 28 5c 0f 3e fa ff ff 3e 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f 14 a9 00 3f 2a f2 33 3f 75 e7 e2 be (\.>...>(...(..?(..?...?*.3?u...
17c0 28 5c 0f 3e f7 ff ff 3e 28 cd 13 3f 28 cd 13 3f 28 cd 13 3f f0 9c e5 3e 2c f2 33 3f 5d b7 f2 be (\.>...>(..?(..?(..?...>,.3?]...
17e0 Signal Assignments: reverse lookup of signals assigned to TCBs signal_assignments = { [<signal pts>] = <sigd> } ]] -- function ildb.create_tcb(pos) local new_tcb = { [1] = {}, [2] = {}, } local pts = advtrains.roundfloorpts(pos) if not track_circuit_breaks[pts] then track_circuit_breaks[pts] = new_tcb return true else return false end end function ildb.get_tcb(pos) local pts = advtrains.roundfloorpts(pos) return track_circuit_breaks[pts] end function ildb.get_tcbs(sigd) local tcb = ildb.get_tcb(sigd.p) if not tcb then return nil end return tcb[sigd.s] end function ildb.create_ts(sigd) local tcbs = ildb.get_tcbs(sigd) local id = advtrains.random_id() while track_sections[id] do id = advtrains.random_id() end track_sections[id] = { name = "Section "..id, tc_breaks = { sigd } } tcbs.ts_id = id end function ildb.get_ts(id) return track_sections[id] end -- various helper functions handling sigd's local sigd_equal = advtrains.interlocking.sigd_equal local function insert_sigd_nodouble(list, sigd) for idx, cmp in pairs(list) do if sigd_equal(sigd, cmp) then return end end table.insert(list, sigd) end -- This function will actually handle the node that is in connid direction from the node at pos -- so, this needs the conns of the node at pos, since these are already calculated local function traverser(found_tcbs, pos, conns, connid, count, brk_when_found_n) local adj_pos, adj_connid, conn_idx, nextrail_y, next_conns = advtrains.get_adjacent_rail(pos, conns, connid, advtrains.all_tracktypes) if not adj_pos then --atdebug("Traverser found end-of-track at",pos, connid) return end -- look whether there is a TCB here if #next_conns == 2 then --if not, don't even try! local tcb = ildb.get_tcb(adj_pos) if tcb then -- done with this branch --atdebug("Traverser found tcb at",adj_pos, adj_connid) insert_sigd_nodouble(found_tcbs, {p=adj_pos, s=adj_connid}) return end end -- recursion abort condition if count > TRAVERSER_LIMIT then --atdebug("Traverser hit counter at",adj_pos, adj_connid) return true end -- continue traversing local counter_hit = false for nconnid, nconn in ipairs(next_conns) do if adj_connid ~= nconnid then counter_hit = counter_hit or traverser(fou cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f e1 be 3d 3f ..#=.^@.(...(..?(...zsu?..w?..=?
1d20 fd d6 23 bc dc 5e 40 be 6a 03 35 3f 00 00 00 00 6a 03 35 bf 39 76 7d 3f 10 86 19 3d db be 3d 3f ..#..^@.j.5?....j.5.9v}?...=..=?
1d40 0e d7 23 3d dc 5e 40 be 28 cb 13 3f 28 cd 13 3f 28 cd 13 bf 89 73 75 3f 60 86 19 3d e7 be 3d bf ..#=.^@.(..?(..?(....su?`..=..=.
1d60 0e d7 23 3d e2 5e 40 be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f de be 3d bf ..#=.^@.(...(..?(...zsu?..w?..=.
1d80 fd d6 23 bc ea 5e 40 be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 3b 76 7d 3f 92 16 77 3f de be 3d bf ..#..^@.j.5.....j.5.;v}?..w?..=.
1da0 fd d6 23 bc ea 5e 40 be 6a 03 35 bf 00 00 00 00 6a 03 35 bf 78 73 75 3f 4d 19 7f 3f e7 be 3d bf ..#..^@.j.5.....j.5.xsu?M..?..=.
1dc0 0e d7 23 3d e2 5e 40 be 28 cd 13 bf 28 cd 13 3f 28 cb 13 bf 7a 73 75 3f 97 16 77 3f dd be 3d bf ..#=.^@.(...(..?(...zsu?..w?..=.
1de0 0e d7 23 3d 44 fb 8a bd 28 cd 13 bf 28 cd 13 3f 28 cd 13 3f c5 39 62 3f 8f 16 77 3f df be 3d bf ..#=D...(...(..?(..?.9b?..w?..=.
1e00 fd d6 23 bc 44 fb 8a bd 6a 03 35 bf 00 00 00 00 6a 03 35 3f c1 39 62 3f 44 19 7f 3f df be 3d bf ..#.D...j.5.....j.5?.9b?D..?..=.
1e20 fd d6 23 bc 44 fb 8a bd 6a 03 35 bf 00 00 00 00 6a 03 35 3f 16 37 5a 3f 90 16 77 3f dd be 3d bf ..#.D...j.5.....j.5?.7Z?..w?..=.
1e40 0e d7 23 3d 44 fb 8a bd 28 cd 13 bf 28 cd 13 3f 28 cd 1 for _, msigd in ipairs(mts.tc_breaks) do local tcbs = ildb.get_tcbs(msigd) if tcbs then insert_sigd_nodouble(rts.tc_breaks, msigd) tcbs.ts_id = root_id end advtrains.interlocking.show_tcb_marker(msigd.p) end -- done track_sections[merge_id] = nil end local lntrans = { "A", "B" } local function sigd_to_string(sigd) return minetest.pos_to_string(sigd.p).." / "..lntrans[sigd.s] end -- Check for near TCBs and connect to their TS if they have one, and syncs their data. function ildb.sync_tcb_neighbors(pos, connid) local found_tcbs = { {p = pos, s = connid} } local node_ok, conns, rhe = advtrains.get_rail_info_at(pos, advtrains.all_tracktypes) if not node_ok then atwarn("update_tcb_neighbors but node is NOK: "..minetest.pos_to_string(pos)) return end --atdebug("Traversing from ",pos, connid) local counter_hit = traverser(found_tcbs, pos, conns, connid, 0) local ts_id local list_eoi = {} local list_ok = {} local list_mismatch = {} local ts_to_merge = {} for idx, sigd in pairs(found_tcbs) do local tcbs = ildb.get_tcbs(sigd) if not tcbs.ts_id then --atdebug("Sync: put",sigd_to_string(sigd),"into list_eoi") table.insert(list_eoi, sigd) elseif not ts_id and tcbs.ts_id then if not ildb.get_ts(tcbs.ts_id) then atwarn("Track section database is inconsistent, there's no TS with ID=",tcbs.ts_id) tcbs.ts_id = nil table.insert(list_eoi, sigd) else --atdebug("Sync: put",sigd_to_string(sigd),"into list_ok") ts_id = tcbs.ts_id table.insert(list_ok, sigd) end elseif ts_id and tcbs.ts_id and tcbs.ts_id ~= ts_id then atwarn("Track section database is inconsistent, sections share track!") atwarn("Merging",tcbs.ts_id,"into",ts_id,".") table.insert(list_mismatch, sigd) table.insert(ts_to_merge, tcbs.ts_id) end end if ts_id then local ts = ildb.get_ts(ts_id) for _, sigd in ipairs(list_eoi) do local tcbs = ildb.get_tcbs(sigd) tcbs.ts_id = ts_id table.insert(ts.tc_breaks, sigd) advtrains.interlocking.show_tcb_marker(sigd.p) end for _, mts in ipairs(ts_to_merge) do merge_ts(ts_id, mts) end end end function ildb.link_track_sections(merge_id, root_idend function ildb.remove_from_interlocking(sigd) local tcbs = ildb.get_tcbs(sigd) if not ildb.may_modify_tcbs(tcbs) then return false end if tcbs.ts_id then local tsid = tcbs.ts_id local ts = ildb.get_ts(tsid) if not ts then tcbs.ts_id = nil return true end -- remove entry from the list local idx = 1 while idx <= #ts.tc_breaks do local cmp = ts.tc_breaks[idx] if sigd_equal(sigd, cmp) then table.remove(ts.tc_breaks, idx) else idx = idx + 1 end end tcbs.ts_id = nil --ildb.sync_tcb_neighbors(sigd.p, sigd.s) if #ts.tc_breaks == 0 then track_sections[tsid] = nil end end advtrains.interlocking.show_tcb_marker(sigd.p) if tcbs.signal then return false end return true end function ildb.remove_tcb(pos) local pts = advtrains.roundfloorpts(pos) if not track_circuit_breaks[pts] then return true --FIX: not an error, because tcb is already removed end for connid=1,2 do if not ildb.remove_from_interlocking({p=pos, s=connid}) then return false end end track_circuit_breaks[pts] = nil return true end function ildb.dissolve_ts(ts_id) local ts = ildb.get_ts(ts_id) if not ildb.may_modify_ts(ts) then return false end local tcbr = advtrains.merge_tables(ts.tc_breaks) for _,sigd in ipairs(tcbr) do ildb.remove_from_interlocking(sigd) end -- Note: ts gets removed in the moment of the removal of the last TCB. return true end -- Returns true if it is allowed to modify any property of a track section, such as -- - removing TCBs -- - merging and dissolving sections -- As of now the action will be denied if a route is set or if a train is in the section. function ildb.may_modify_ts(ts) if ts.route or ts.route_post or (ts.trains and #ts.trains>0) then return false end return true end function ildb.may_modify_tcbs(tcbs) if tcbs.ts_id then local ts = ildb.get_ts(tcbs.ts_id) if ts and not ildb.may_modify_ts(ts) then return false end end return true end -- Utilize the traverser to find the track section at the specified position -- Returns: -- ts_id, origin - the first found ts and the sigd of the found tcb -- nil - there were no TCBs in TRAVERSER_MAX range of the position -- false - the first found TCB stated End-Of-Interlocking, or track ends were reached function ildb.get_ts_at_pos(pos) local node_ok, conns, rhe = advtrains.get_rail_info_at(pos, advtrains.all_tracktypes) if not node_ok then error("get_ts_at_pos but node is NOK: "..minetest.pos_to_string