diff --git a/assets/blender/astream/road/road-lanes.blend b/assets/blender/astream/road/road-lanes.blend new file mode 100644 index 0000000..814e4d8 Binary files /dev/null and b/assets/blender/astream/road/road-lanes.blend differ diff --git a/assets/blender/astream/road/road.png b/assets/blender/astream/road/road.png new file mode 100644 index 0000000..66ff980 Binary files /dev/null and b/assets/blender/astream/road/road.png differ diff --git a/godot/astream/buildings.json b/godot/astream/buildings.json index e322a9f..9e209a1 100644 --- a/godot/astream/buildings.json +++ b/godot/astream/buildings.json @@ -6320,7 +6320,7 @@ "xform": "Transform( 1, 1.8011e-08, -0.000335185, 0, 1, 5.37346e-05, 0.000335185, -5.37346e-05, 1, 159.997, -1.2499, -487.052 )", "index": 300 }, - "road__center2_road__transit_stop__7__0__right__bus-stop": { + "Transform( -0.0905355, 0.000477676, -0.995893, 0, 1, 0.000479646, 0.995893, 4.34249e-05, -0.0905355, -445.467, 0.0428081, -478.224 )": { "id": "bus-stop", "pattern_id": 0, "generated": true, @@ -6337,11 +6337,11 @@ 0, 23 ], - "key": "road__center2_road__transit_stop__7__0__right__bus-stop", - "xform": "Transform( 0.274721, 2.87899e-07, 0.961524, -1.04797e-06, 1, -4.58082e-14, -0.961524, -1.00765e-06, 0.274721, -75.4563, 0.00010019, -138.703 )", + "key": "Transform( -0.0905355, 0.000477676, -0.995893, 0, 1, 0.000479646, 0.995893, 4.34249e-05, -0.0905355, -445.467, 0.0428081, -478.224 )", + "xform": "Transform( -0.0905355, 0.000477676, -0.995893, 0, 1, 0.000479646, 0.995893, 4.34249e-05, -0.0905355, -445.467, -1.2499, -478.224 )", "index": 301 }, - "road__center2_road__transit_stop__0__0__right__bus-stop": { + "Transform( 0, -9.15546e-06, 1, 0, 1, 9.15546e-06, -1, 0, 0, -557, 0.0216034, -505 )": { "id": "bus-stop", "pattern_id": 0, "generated": true, @@ -6358,12 +6358,12 @@ 0, 23 ], - "key": "road__center2_road__transit_stop__0__0__right__bus-stop", - "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1110, 0.0210266, -245 )", + "key": "Transform( 0, -9.15546e-06, 1, 0, 1, 9.15546e-06, -1, 0, 0, -557, 0.0216034, -505 )", + "xform": "Transform( 0, -9.15546e-06, 1, 0, 1, 9.15546e-06, -1, 0, 0, -557, -1.2499, -505 )", "index": 302 }, - "road__center2_road__lot__7__right__lot-small1": { - "id": "lot-small1", + "Transform( 0, -9.15546e-06, -1, 0, 1, -9.15546e-06, 1, 0, 0, -573, 0.0214569, -505 )": { + "id": "bus-stop", "pattern_id": 0, "generated": true, "residents": [ @@ -6379,8 +6379,8 @@ 0, 23 ], - "key": "road__center2_road__lot__7__right__lot-small1", - "xform": "Transform( -0.274721, 2.87899e-07, -0.961524, 1.04797e-06, 1, -4.58082e-14, 0.961524, -1.00765e-06, -0.274721, -38.3552, 0.000121149, -107.302 )", + "key": "Transform( 0, -9.15546e-06, -1, 0, 1, -9.15546e-06, 1, 0, 0, -573, 0.0214569, -505 )", + "xform": "Transform( 0, -9.15546e-06, -1, 0, 1, -9.15546e-06, 1, 0, 0, -573, -1.2499, -505 )", "index": 303 }, "Transform( 0.0570496, 0, 0.998371, 0, 1, 0, -0.998371, 0, 0.0570496, 41.3947, 0.0140915, -83.4089 )": { @@ -35314,413 +35314,172 @@ "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1006.05, -1.2499, -200 )", "index": 1048 }, - "Transform( 0.104694, 0, 0.994505, 0, 1, 0, -0.994505, 0, 0.104694, -1067.23, 0.015686, -178.812 )": { - "id": "residental-house6", - "pattern_id": 884, + "Transform( 0.0238027, -0.000152066, 0.999717, 0, 1, 0.000152109, -0.999717, -3.6206e-06, 0.0238027, -434.502, 0.0429191, -344.81 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 2296, - 2377, - 638 + ], "workers": [ ], "guests": [ - 584, - 2780, - 2367, - 2696, - 386, - 1563, - 1913, - 1902, - 299, - 1875, - 1629, - 1292, - 523, - 903, - 2382, - 2491, - 1844, - 2586, - 914, - 102 + ], "worktime": [ - 13, + 0, 23 ], - "key": "Transform( 0.104694, 0, 0.994505, 0, 1, 0, -0.994505, 0, 0.104694, -1067.23, 0.015686, -178.812 )", - "xform": "Transform( 0.104694, 0, 0.994505, 0, 1, 0, -0.994505, 0, 0.104694, -1067.23, -1.2499, -178.812 )", + "key": "Transform( 0.0238027, -0.000152066, 0.999717, 0, 1, 0.000152109, -0.999717, -3.6206e-06, 0.0238027, -434.502, 0.0429191, -344.81 )", + "xform": "Transform( 0.0238027, -0.000152066, 0.999717, 0, 1, 0.000152109, -0.999717, -3.6206e-06, 0.0238027, -434.502, -1.2499, -344.81 )", "index": 1049 }, - "Transform( 0.104678, 0, 0.994506, 0, 1, 0, -0.994506, 0, 0.104678, -1070.89, 0.00824738, -144.077 )": { - "id": "residental-house7", - "pattern_id": 885, + "Transform( -0.0238027, -0.000152066, -0.999717, 0, 1, -0.000152109, 0.999717, -3.6206e-06, -0.0238027, -450.498, 0.0404854, -345.19 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1902, - 931, - 903 + ], "workers": [ ], "guests": [ - 2491, - 2318, - 914, - 299, - 2123, - 2296, - 638, - 997, - 617, - 1946, - 1593, - 2253, - 1563, - 2367, - 778, - 601, - 1816, - 2377, - 2347, - 342, - 1958, - 1228, - 1049, - 1383, - 1739, - 154, - 523, - 2060, - 2382, - 1913, - 2647, - 386, - 722, - 733, - 514, - 1844, - 584, - 981, - 660 + ], "worktime": [ - 20, + 0, 23 ], - "key": "Transform( 0.104678, 0, 0.994506, 0, 1, 0, -0.994506, 0, 0.104678, -1070.89, 0.00824738, -144.077 )", - "xform": "Transform( 0.104678, 0, 0.994506, 0, 1, 0, -0.994506, 0, 0.104678, -1070.89, -1.2499, -144.077 )", + "key": "Transform( -0.0238027, -0.000152066, -0.999717, 0, 1, -0.000152109, 0.999717, -3.6206e-06, -0.0238027, -450.498, 0.0404854, -345.19 )", + "xform": "Transform( -0.0238027, -0.000152066, -0.999717, 0, 1, -0.000152109, 0.999717, -3.6206e-06, -0.0238027, -450.498, -1.2499, -345.19 )", "index": 1050 }, - "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -1033.7, -0.0156555, -105 )": { - "id": "residental-house8", - "pattern_id": 887, + "Transform( -0.999445, 3.96291e-06, 0.033315, 0, 1, -0.000118953, -0.033315, -0.000118887, -0.999445, -369.733, 0.0478002, -245.496 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 102, - 2367, - 2123 + ], "workers": [ ], "guests": [ - 515, - 2647, - 1016, - 2696, - 523, - 1205, - 1383, - 336, - 1228, - 2296, - 903, - 1517, - 778, - 453, - 386, - 733, - 165, - 722, - 514, - 1593, - 2377, - 478, - 1902, - 997 + ], "worktime": [ - 17, + 0, 23 ], - "key": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -1033.7, -0.0156555, -105 )", - "xform": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -1033.7, -1.2499, -105 )", + "key": "Transform( -0.999445, 3.96291e-06, 0.033315, 0, 1, -0.000118953, -0.033315, -0.000118887, -0.999445, -369.733, 0.0478002, -245.496 )", + "xform": "Transform( -0.999445, 3.96291e-06, 0.033315, 0, 1, -0.000118953, -0.033315, -0.000118887, -0.999445, -369.733, -1.2499, -245.496 )", "index": 1051 }, - "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -998.891, 0.0140915, -105 )": { - "id": "residental-house9", - "pattern_id": 888, + "Transform( 0.999445, 3.96291e-06, -0.033315, 0, 1, 0.000118953, 0.033315, -0.000118887, 0.999445, -370.267, 0.0497034, -229.504 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1958, - 523, - 299 + ], "workers": [ ], "guests": [ - 2377, - 2123, - 2780, - 931, - 257, - 1149, - 1778, - 2465, - 1902, - 342, - 2253, - 903, - 1739, - 638, - 2347, - 2214, - 1517, - 617, - 2696, - 1016, - 515, - 165 + ], "worktime": [ - 18, + 0, 23 ], - "key": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -998.891, 0.0140915, -105 )", - "xform": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -998.891, -1.2499, -105 )", + "key": "Transform( 0.999445, 3.96291e-06, -0.033315, 0, 1, 0.000118953, 0.033315, -0.000118887, 0.999445, -370.267, 0.0497034, -229.504 )", + "xform": "Transform( 0.999445, 3.96291e-06, -0.033315, 0, 1, 0.000118953, 0.033315, -0.000118887, 0.999445, -370.267, -1.2499, -229.504 )", "index": 1052 }, - "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -949.397, 0.0140915, -105 )": { - "id": "residental-house10", - "pattern_id": 890, + "Transform( -0.999261, 1.29825e-06, 0.0384338, 0, 1, -3.37789e-05, -0.0384338, -3.37539e-05, -0.999261, -829.693, 0.0185591, -420.494 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 2253, - 2780, - 997 + ], "workers": [ ], "guests": [ - 2104, - 1149, - 638, - 1205, - 1778, - 1517, - 1958, - 1016, - 2377, - 981, - 1871, - 1902, - 2214, - 1103, - 514, - 841, - 299, - 2481, - 617, - 2696, - 903, - 102, - 478, - 453, - 342, - 2367, - 1946, - 1279, - 336, - 878, - 2296, - 660, - 154, - 523, - 2549 + ], "worktime": [ - 20, + 0, 23 ], - "key": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -949.397, 0.0140915, -105 )", - "xform": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -949.397, -1.2499, -105 )", + "key": "Transform( -0.999261, 1.29825e-06, 0.0384338, 0, 1, -3.37789e-05, -0.0384338, -3.37539e-05, -0.999261, -829.693, 0.0185591, -420.494 )", + "xform": "Transform( -0.999261, 1.29825e-06, 0.0384338, 0, 1, -3.37789e-05, -0.0384338, -3.37539e-05, -0.999261, -829.693, -1.2499, -420.494 )", "index": 1053 }, - "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -899.4, 0.0140915, -105 )": { - "id": "residental-house11", - "pattern_id": 892, + "Transform( 0.999261, 1.29825e-06, -0.0384338, 0, 1, 3.37789e-05, 0.0384338, -3.37539e-05, 0.999261, -830.307, 0.0190996, -404.506 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 336, - 478, - 1871 + ], "workers": [ ], "guests": [ - 312, - 2253, - 195, - 2214, - 299, - 660, - 1958, - 506, - 2465, - 1476, - 102, - 2549, - 805, - 2481, - 342, - 1016, - 719, - 212, - 2780, - 1103, - 190, - 518, - 1629, - 1674, - 2123, - 617, - 1205, - 1352, - 453, - 997, - 1149, - 1279, - 857, - 878 + ], "worktime": [ - 20, + 0, 23 ], - "key": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -899.4, 0.0140915, -105 )", - "xform": "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, -899.4, -1.2499, -105 )", + "key": "Transform( 0.999261, 1.29825e-06, -0.0384338, 0, 1, 3.37789e-05, 0.0384338, -3.37539e-05, 0.999261, -830.307, 0.0190996, -404.506 )", + "xform": "Transform( 0.999261, 1.29825e-06, -0.0384338, 0, 1, 3.37789e-05, 0.0384338, -3.37539e-05, 0.999261, -830.307, -1.2499, -404.506 )", "index": 1054 }, - "Transform( 0.998868, 0, 0.0475656, 0, 1, 0, -0.0475656, 0, 0.998868, -697.439, 0.0385437, -99.1696 )": { - "id": "residental-house1", - "pattern_id": 893, + "Transform( -0.964764, 0.000148175, 0.263118, 0, 1, -0.00056315, -0.263119, -0.000543307, -0.964763, -1130.4, 0.0325736, -255.218 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1532, - 1323, - 1018 + ], "workers": [ ], "guests": [ - 1849, - 1094, - 1235, - 2470, - 1623, - 642, - 1041, - 761, - 1352, - 1319, - 1551, - 2748, - 1794, - 719, - 2031, - 517, - 1644, - 2447, - 2338, - 1260, - 1674, - 181, - 857, - 1092, - 1476, - 234, - 2489, - 1682, - 1941, - 1409, - 518, - 1857, - 2364, - 298, - 709, - 2466, - 2588 + ], "worktime": [ - 13, + 0, 23 ], - "key": "Transform( 0.998868, 0, 0.0475656, 0, 1, 0, -0.0475656, 0, 0.998868, -697.439, 0.0385437, -99.1696 )", - "xform": "Transform( 0.998868, 0, 0.0475656, 0, 1, 0, -0.0475656, 0, 0.998868, -697.439, -1.2499, -99.1696 )", + "key": "Transform( -0.964764, 0.000148175, 0.263118, 0, 1, -0.00056315, -0.263119, -0.000543307, -0.964763, -1130.4, 0.0325736, -255.218 )", + "xform": "Transform( -0.964764, 0.000148175, 0.263118, 0, 1, -0.00056315, -0.263119, -0.000543307, -0.964763, -1130.4, -1.2499, -255.218 )", "index": 1055 }, - "Transform( 0.998868, 0, 0.0475648, 0, 1, 0, -0.0475648, 0, 0.998868, -742.281, 0.0385437, -97.0342 )": { - "id": "residental-house2", - "pattern_id": 895, + "Transform( 0.964764, 0.000148175, -0.263118, 0, 1, 0.00056315, 0.263119, -0.000543307, 0.964763, -1134.6, 0.0415841, -239.782 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1857, - 1623, - 1235 + ], "workers": [ ], "guests": [ - 517, - 857, - 1260, - 1476, - 1092, - 312, - 2352, - 1352, - 2470, - 1532, - 1018, - 1094, - 1551, - 1682, - 181, - 1849, - 2588, - 1580, - 518, - 212, - 113, - 448 + ], "worktime": [ - 18, + 0, 23 ], - "key": "Transform( 0.998868, 0, 0.0475648, 0, 1, 0, -0.0475648, 0, 0.998868, -742.281, 0.0385437, -97.0342 )", - "xform": "Transform( 0.998868, 0, 0.0475648, 0, 1, 0, -0.0475648, 0, 0.998868, -742.281, -1.2499, -97.0342 )", + "key": "Transform( 0.964764, 0.000148175, -0.263118, 0, 1, 0.00056315, 0.263119, -0.000543307, 0.964763, -1134.6, 0.0415841, -239.782 )", + "xform": "Transform( 0.964764, 0.000148175, -0.263118, 0, 1, 0.00056315, 0.263119, -0.000543307, 0.964763, -1134.6, -1.2499, -239.782 )", "index": 1056 }, "Transform( -0.274723, 0, -0.961523, 0, 1, 0, 0.961523, 0, -0.274723, -778.824, 0.0396729, -116.616 )": { @@ -36159,162 +35918,88 @@ "xform": "Transform( 0.0475657, 0, 0.998868, 0, 1, 0, -0.998868, 0, 0.0475656, -492.923, -1.2499, -143.613 )", "index": 1065 }, - "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -516.472, 0.0140915, -100 )": { - "id": "residental-house1", - "pattern_id": 910, + "Transform( 0.155962, -0.000173951, 0.987763, 0, 1, 0.000176106, -0.987763, -2.74658e-05, 0.155962, -774.598, 0.0508626, -286.252 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 385, - 1097, - 673 + ], "workers": [ ], "guests": [ - 2316, - 464, - 2338, - 1451, - 2017, - 2057, - 2364, - 1336, - 1041, - 234 + ], "worktime": [ - 20, + 0, 23 ], - "key": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -516.472, 0.0140915, -100 )", - "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -516.472, -1.2499, -100 )", + "key": "Transform( 0.155962, -0.000173951, 0.987763, 0, 1, 0.000176106, -0.987763, -2.74658e-05, 0.155962, -774.598, 0.0508626, -286.252 )", + "xform": "Transform( 0.155962, -0.000173951, 0.987763, 0, 1, 0.000176106, -0.987763, -2.74658e-05, 0.155962, -774.598, -1.2499, -286.252 )", "index": 1066 }, - "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -561.526, 0.035202, -100 )": { - "id": "residental-house2", - "pattern_id": 912, + "Transform( -0.155962, -0.000173951, -0.987763, 0, 1, -0.000176106, 0.987763, -2.74658e-05, -0.155962, -790.402, 0.0480449, -288.748 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 642, - 829, - 1319 + ], "workers": [ ], "guests": [ - 2057, - 787, - 1247, - 2193, - 992, - 673, - 2670, - 1097, - 1018, - 234, - 1532, - 840, - 761, - 1644 + ], "worktime": [ - 20, + 0, 23 ], - "key": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -561.526, 0.035202, -100 )", - "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -561.526, -1.2499, -100 )", + "key": "Transform( -0.155962, -0.000173951, -0.987763, 0, 1, -0.000176106, 0.987763, -2.74658e-05, -0.155962, -790.402, 0.0480449, -288.748 )", + "xform": "Transform( -0.155962, -0.000173951, -0.987763, 0, 1, -0.000176106, 0.987763, -2.74658e-05, -0.155962, -790.402, -1.2499, -288.748 )", "index": 1067 }, - "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -596.511, 0.0535355, -100 )": { - "id": "residental-house3", - "pattern_id": 913, + "Transform( 0.998969, -6.1665e-06, 0.0454081, 0, 1, 0.000135802, -0.0454081, -0.000135662, 0.998968, -264.637, 0.0295898, -799.508 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1849, - 234, - 2470 + ], "workers": [ ], "guests": [ - 2031, - 1319, - 1150, - 994, - 1097, - 1409, - 642, - 2748, - 1235, - 1623, - 673, - 761, - 1247, - 2670, - 1941, - 2364, - 1336, - 2017, - 1857, - 2534, - 2085, - 464, - 517, - 823, - 113, - 1018, - 1092 + ], "worktime": [ - 18, + 0, 23 ], - "key": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -596.511, 0.0535355, -100 )", - "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -596.511, -1.2499, -100 )", + "key": "Transform( 0.998969, -6.1665e-06, 0.0454081, 0, 1, 0.000135802, -0.0454081, -0.000135662, 0.998968, -264.637, 0.0295898, -799.508 )", + "xform": "Transform( 0.998969, -6.1665e-06, 0.0454081, 0, 1, 0.000135802, -0.0454081, -0.000135662, 0.998968, -264.637, -1.2499, -799.508 )", "index": 1068 }, - "Transform( -0.178884, 0, -0.98387, 0, 1, 0, 0.98387, 0, -0.178884, -286.804, 0.0385437, -107.576 )": { - "id": "residental-house1", - "pattern_id": 915, + "road__center2_road__lot__11__right__lot-large1": { + "id": "lot-large1", + "pattern_id": 0, "generated": true, "residents": [ - 1233, - 251, - 1397 + ], "workers": [ ], "guests": [ - 2283, - 2259, - 2422, - 413, - 121, - 2120, - 2023, - 1496, - 968, - 1806, - 1485, - 1746, - 1137, - 676, - 619, - 1647, - 1559, - 1153, - 2006 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.178884, 0, -0.98387, 0, 1, 0, 0.98387, 0, -0.178884, -286.804, 0.0385437, -107.576 )", - "xform": "Transform( -0.178884, 0, -0.98387, 0, 1, 0, 0.98387, 0, -0.178884, -286.804, -1.2499, -107.576 )", + "key": "road__center2_road__lot__11__right__lot-large1", + "xform": "Transform( 0, 0, -1, 0, 1, 0, 1, 0, 0, -467, 1.52588e-05, 36 )", "index": 1069 }, "Transform( -0.178881, 0, -0.983871, 0, 1, 0, 0.983871, 0, -0.178881, -278.769, 0.0385437, -151.772 )": { @@ -36492,8 +36177,8 @@ "xform": "Transform( -0.999568, 0, -0.0293968, 0, 1, 0, 0.0293968, 0, -0.999568, -168.6, -1.2499, -202.982 )", "index": 1073 }, - "road__center2_road__lot__9__left__lot-small1": { - "id": "lot-small1", + "Transform( -0.998969, -6.16649e-06, -0.0454081, 0, 1, -0.000135802, 0.0454081, -0.000135661, -0.998968, -265.363, 0.027417, -815.492 )": { + "id": "bus-stop", "pattern_id": 0, "generated": true, "residents": [ @@ -36509,12 +36194,12 @@ 0, 23 ], - "key": "road__center2_road__lot__9__left__lot-small1", - "xform": "Transform( 0.201653, -2.65919e-07, 0.979457, 1.3187e-06, 1, 5.76422e-14, -0.979457, 1.29161e-06, 0.201653, -118.508, 0.000127158, -208.73 )", + "key": "Transform( -0.998969, -6.16649e-06, -0.0454081, 0, 1, -0.000135802, 0.0454081, -0.000135661, -0.998968, -265.363, 0.027417, -815.492 )", + "xform": "Transform( -0.998969, -6.16649e-06, -0.0454081, 0, 1, -0.000135802, 0.0454081, -0.000135661, -0.998968, -265.363, -1.2499, -815.492 )", "index": 1074 }, - "road__center2_road__lot__6__left__lot-small1": { - "id": "lot-small1", + "Transform( 0.242536, 8.24973e-05, 0.970142, 0, 1, -8.50363e-05, -0.970143, 2.06243e-05, 0.242536, -804.739, 0.0493533, -148.06 )": { + "id": "bus-stop", "pattern_id": 0, "generated": true, "residents": [ @@ -36530,12 +36215,12 @@ 0, 23 ], - "key": "road__center2_road__lot__6__left__lot-small1", - "xform": "Transform( 0.28497, 0.000424686, 0.958536, -0.00149028, 0.999999, -6.51422e-11, -0.958535, -0.00142849, 0.28497, -147.72, 0.0204212, -93.7818 )", + "key": "Transform( 0.242536, 8.24973e-05, 0.970142, 0, 1, -8.50363e-05, -0.970143, 2.06243e-05, 0.242536, -804.739, 0.0493533, -148.06 )", + "xform": "Transform( 0.242536, 8.24973e-05, 0.970142, 0, 1, -8.50363e-05, -0.970143, 2.06243e-05, 0.242536, -804.739, -1.2499, -148.06 )", "index": 1075 }, - "road__center2_road__lot__9__right__lot-small1": { - "id": "lot-small1", + "Transform( -0.242536, 8.24973e-05, -0.970142, 0, 1, 8.50363e-05, 0.970143, 2.06243e-05, -0.242536, -820.261, 0.0507139, -151.94 )": { + "id": "bus-stop", "pattern_id": 0, "generated": true, "residents": [ @@ -36551,12 +36236,12 @@ 0, 23 ], - "key": "road__center2_road__lot__9__right__lot-small1", - "xform": "Transform( -0.201653, -2.6592e-07, -0.979457, -1.3187e-06, 1, 5.76422e-14, 0.979457, 1.29161e-06, -0.201653, -15.9816, 0.000144301, -200.894 )", + "key": "Transform( -0.242536, 8.24973e-05, -0.970142, 0, 1, 8.50363e-05, 0.970143, 2.06243e-05, -0.242536, -820.261, 0.0507139, -151.94 )", + "xform": "Transform( -0.242536, 8.24973e-05, -0.970142, 0, 1, 8.50363e-05, 0.970143, 2.06243e-05, -0.242536, -820.261, -1.2499, -151.94 )", "index": 1076 }, - "road__center2_road__lot__7__left__lot-small1": { - "id": "lot-small1", + "Transform( 0.196116, -9.80924e-05, 0.980581, 0, 1, 0.000100035, -0.980581, -1.96185e-05, 0.196116, -304.655, 0.0495521, -145.931 )": { + "id": "bus-stop", "pattern_id": 0, "generated": true, "residents": [ @@ -36572,8 +36257,8 @@ 0, 23 ], - "key": "road__center2_road__lot__7__left__lot-small1", - "xform": "Transform( 0.274721, 2.879e-07, 0.961524, -1.04797e-06, 1, -4.58082e-14, -0.961524, -1.00765e-06, 0.274721, -137.269, 0.000130581, -126.203 )", + "key": "Transform( 0.196116, -9.80924e-05, 0.980581, 0, 1, 0.000100035, -0.980581, -1.96185e-05, 0.196116, -304.655, 0.0495521, -145.931 )", + "xform": "Transform( 0.196116, -9.80924e-05, 0.980581, 0, 1, 0.000100035, -0.980581, -1.96185e-05, 0.196116, -304.655, -1.2499, -145.931 )", "index": 1077 }, "Transform( -0.090538, 0, -0.995893, 0, 1, 0, 0.995893, 0, -0.090538, -423.417, 0.0248413, -107.418 )": { @@ -40175,1242 +39860,634 @@ "xform": "Transform( -0.422886, 0, 0.906183, 0, 1, 0, -0.906183, 0, -0.422886, -1210.38, -1.2499, -263.662 )", "index": 1160 }, - "Transform( -0.968317, 0, 0.249725, 0, 1, 0, -0.249725, 0, -0.968317, -1173.54, 0.0385437, -216.343 )": { - "id": "residental-house5", - "pattern_id": 1056, + "Transform( -0.196116, -9.80924e-05, -0.980581, 0, 1, -0.000100035, 0.980581, -1.96185e-05, -0.196116, -320.345, 0.0479515, -149.069 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1913, - 2318, - 2060 + ], "workers": [ ], "guests": [ - 1069, - 2090, - 2586, - 778, - 638, - 2382, - 931, - 1651, - 2610, - 2491, - 1049, - 2647, - 2609, - 914, - 1816, - 2296, - 1383, - 1100, - 2499, - 2045, - 1563, - 722, - 1292 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.968317, 0, 0.249725, 0, 1, 0, -0.249725, 0, -0.968317, -1173.54, 0.0385437, -216.343 )", - "xform": "Transform( -0.968317, 0, 0.249725, 0, 1, 0, -0.249725, 0, -0.968317, -1173.54, -1.2499, -216.343 )", + "key": "Transform( -0.196116, -9.80924e-05, -0.980581, 0, 1, -0.000100035, 0.980581, -1.96185e-05, -0.196116, -320.345, 0.0479515, -149.069 )", + "xform": "Transform( -0.196116, -9.80924e-05, -0.980581, 0, 1, -0.000100035, 0.980581, -1.96185e-05, -0.196116, -320.345, -1.2499, -149.069 )", "index": 1161 }, - "Transform( 0.127167, 0, 0.991881, 0, 1, 0, -0.991881, 0, 0.127167, -1151.51, 0.0316849, -159.256 )": { - "id": "residental-house6", - "pattern_id": 1058, + "Transform( -0.999753, 0, 0.0222168, 0, 1, 0, -0.0222168, 0, -0.999753, -217.322, 0.0576782, -65.498 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 386, - 2647, - 778 + ], "workers": [ ], "guests": [ - 2382, - 102, - 2377, - 733, - 1913, - 2123, - 1292, - 1563, - 722, - 1383, - 1739, - 601, - 2045, - 1844, - 2609, - 2491, - 2367, - 2060, - 1902, - 2318, - 638, - 2347, - 903 + ], "worktime": [ - 14, + 0, 23 ], - "key": "Transform( 0.127167, 0, 0.991881, 0, 1, 0, -0.991881, 0, 0.127167, -1151.51, 0.0316849, -159.256 )", - "xform": "Transform( 0.127167, 0, 0.991881, 0, 1, 0, -0.991881, 0, 0.127167, -1151.51, -1.2499, -159.256 )", + "key": "Transform( -0.999753, 0, 0.0222168, 0, 1, 0, -0.0222168, 0, -0.999753, -217.322, 0.0576782, -65.498 )", + "xform": "Transform( -0.999753, 0, 0.0222168, 0, 1, 0, -0.0222168, 0, -0.999753, -217.322, -1.2499, -65.498 )", "index": 1162 }, - "Transform( 0.127163, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127163, -1155.94, -0.0346298, -124.676 )": { - "id": "residental-house7", - "pattern_id": 1059, + "Transform( 0.999753, 0, -0.0222168, 0, 1, 0, 0.0222168, 0, 0.999753, -217.678, 0.0576782, -49.502 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1844, - 2609, - 2491 + ], "workers": [ ], "guests": [ - 2647, - 1383, - 1228, - 903, - 1651, - 1739, - 2045, - 2151, - 1946, - 2296, - 2060, - 1563, - 722, - 2347 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( 0.127163, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127163, -1155.94, -0.0346298, -124.676 )", - "xform": "Transform( 0.127163, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127163, -1155.94, -1.2499, -124.676 )", + "key": "Transform( 0.999753, 0, -0.0222168, 0, 1, 0, 0.0222168, 0, 0.999753, -217.678, 0.0576782, -49.502 )", + "xform": "Transform( 0.999753, 0, -0.0222168, 0, 1, 0, 0.0222168, 0, 0.999753, -217.678, -1.2499, -49.502 )", "index": 1163 }, - "Transform( 0.127165, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127165, -1162.29, -0.124443, -75.1307 )": { - "id": "residental-house8", - "pattern_id": 1061, + "Transform( 0.141421, -0.000248657, 0.98995, 0, 1, 0.000251181, -0.98995, -3.55222e-05, 0.14142, -729.58, 0.0340682, -576.369 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 722, - 1563, - 1383 + ], "workers": [ ], "guests": [ - 1593, - 981, - 2347, - 2609, - 1739, - 2318, - 2123, - 2647, - 102, - 733, - 2377, - 931, - 2367, - 154, - 2491 + ], "worktime": [ - 15, + 0, 23 ], - "key": "Transform( 0.127165, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127165, -1162.29, -0.124443, -75.1307 )", - "xform": "Transform( 0.127165, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127165, -1162.29, -1.2499, -75.1307 )", + "key": "Transform( 0.141421, -0.000248657, 0.98995, 0, 1, 0.000251181, -0.98995, -3.55222e-05, 0.14142, -729.58, 0.0340682, -576.369 )", + "xform": "Transform( 0.141421, -0.000248657, 0.98995, 0, 1, 0.000251181, -0.98995, -3.55222e-05, 0.14142, -729.58, -1.2499, -576.369 )", "index": 1164 }, - "Transform( 0.127165, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127165, -1166.75, -0.124443, -40.3291 )": { - "id": "residental-house9", - "pattern_id": 1062, + "Transform( -0.141421, -0.000248657, -0.98995, 0, 1, -0.000251181, 0.98995, -3.55222e-05, -0.14142, -745.42, 0.0300492, -578.631 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 733, - 1228, - 601 + ], "workers": [ ], "guests": [ - 2491, - 1946, - 1844, - 778, - 903, - 154, - 102, - 1563, - 1517, - 1902, - 2609, - 931 + ], "worktime": [ - 13, + 0, 23 ], - "key": "Transform( 0.127165, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127165, -1166.75, -0.124443, -40.3291 )", - "xform": "Transform( 0.127165, 0, 0.991882, 0, 1, 0, -0.991882, 0, 0.127165, -1166.75, -1.2499, -40.3291 )", + "key": "Transform( -0.141421, -0.000248657, -0.98995, 0, 1, -0.000251181, 0.98995, -3.55222e-05, -0.14142, -745.42, 0.0300492, -578.631 )", + "xform": "Transform( -0.141421, -0.000248657, -0.98995, 0, 1, -0.000251181, 0.98995, -3.55222e-05, -0.14142, -745.42, -1.2499, -578.631 )", "index": 1165 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1115.91, -0.124443, -15.3258 )": { - "id": "residental-house10", - "pattern_id": 1064, + "Transform( 0.999753, -7.13883e-07, 0.0222137, 0, 1, 3.2137e-05, -0.0222137, -3.21291e-05, 0.999753, -504.793, 0.0258359, -795.669 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 165, - 2347, - 1739 + ], "workers": [ ], "guests": [ - 299, - 1383, - 1844, - 523, - 2609, - 931, - 1563, - 1016, - 1517, - 733, - 514, - 154, - 2123, - 1946, - 1593, - 102, - 2367, - 601, - 1902, - 1279, - 903, - 2647, - 722, - 453, - 981, - 1228 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1115.91, -0.124443, -15.3258 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1115.91, -1.2499, -15.3258 )", + "key": "Transform( 0.999753, -7.13883e-07, 0.0222137, 0, 1, 3.2137e-05, -0.0222137, -3.21291e-05, 0.999753, -504.793, 0.0258359, -795.669 )", + "xform": "Transform( 0.999753, -7.13883e-07, 0.0222137, 0, 1, 3.2137e-05, -0.0222137, -3.21291e-05, 0.999753, -504.793, -1.2499, -795.669 )", "index": 1166 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1065.15, -0.124443, -15.6316 )": { - "id": "residental-house11", - "pattern_id": 1066, + "Transform( -0.999753, -7.13883e-07, -0.0222137, 0, 1, -3.2137e-05, 0.0222137, -3.21291e-05, -0.999753, -505.148, 0.0253218, -811.666 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 514, - 1517, - 1946 + ], "workers": [ ], "guests": [ - 102, - 2609, - 2491, - 2214, - 733, - 523, - 931, - 299, - 1739, - 2367, - 1844, - 1902, - 903, - 1958, - 722, - 1383, - 2780, - 1563, - 165, - 257, - 1593, - 2253, - 1279, - 1228, - 997, - 154, - 2123, - 515, - 453 + ], "worktime": [ - 17, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1065.15, -0.124443, -15.6316 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1065.15, -1.2499, -15.6316 )", + "key": "Transform( -0.999753, -7.13883e-07, -0.0222137, 0, 1, -3.2137e-05, 0.0222137, -3.21291e-05, -0.999753, -505.148, 0.0253218, -811.666 )", + "xform": "Transform( -0.999753, -7.13883e-07, -0.0222137, 0, 1, -3.2137e-05, 0.0222137, -3.21291e-05, -0.999753, -505.148, -1.2499, -811.666 )", "index": 1167 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1029.74, -0.0697403, -15.8449 )": { - "id": "residental-house1", - "pattern_id": 1067, + "Transform( 0.0830455, 2.20618e-05, 0.996546, 0, 1, -2.21383e-05, -0.996546, 1.83848e-06, 0.0830455, -444.528, 0.0555017, -149.336 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1593, - 154, - 981 + ], "workers": [ ], "guests": [ - 2214, - 931, - 1383, - 1902, - 903, - 2367, - 2253, - 2780, - 453, - 722, - 1958, - 1228, - 878, - 1946, - 257, - 997, - 2347, - 515, - 1279, - 1563, - 2123 + ], "worktime": [ - 16, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1029.74, -0.0697403, -15.8449 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -1029.74, -1.2499, -15.8449 )", + "key": "Transform( 0.0830455, 2.20618e-05, 0.996546, 0, 1, -2.21383e-05, -0.996546, 1.83848e-06, 0.0830455, -444.528, 0.0555017, -149.336 )", + "xform": "Transform( 0.0830455, 2.20618e-05, 0.996546, 0, 1, -2.21383e-05, -0.996546, 1.83848e-06, 0.0830455, -444.528, -1.2499, -149.336 )", "index": 1168 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -982.723, 0.0249481, -16.1282 )": { - "id": "residental-house2", - "pattern_id": 1069, + "Transform( -0.0830455, 2.20618e-05, -0.996546, 0, 1, 2.21383e-05, 0.996546, 1.83848e-06, -0.0830455, -460.472, 0.055856, -150.664 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 453, - 1016, - 1279 + ], "workers": [ ], "guests": [ - 1593, - 515, - 1946, - 212, - 2780, - 2253, - 1149, - 1739, - 2367, - 1871, - 299, - 514, - 805, - 165, - 336, - 478, - 981, - 102, - 878, - 997 + ], "worktime": [ - 17, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -982.723, 0.0249481, -16.1282 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -982.723, -1.2499, -16.1282 )", + "key": "Transform( -0.0830455, 2.20618e-05, -0.996546, 0, 1, 2.21383e-05, 0.996546, 1.83848e-06, -0.0830455, -460.472, 0.055856, -150.664 )", + "xform": "Transform( -0.0830455, 2.20618e-05, -0.996546, 0, 1, 2.21383e-05, 0.996546, 1.83848e-06, -0.0830455, -460.472, -1.2499, -150.664 )", "index": 1169 }, - "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -947.712, 0.0146713, -16.3391 )": { - "id": "residental-house3", - "pattern_id": 1070, + "Transform( 0.207976, -0.00017893, 0.978134, 0, 1, 0.00018293, -0.978134, -3.8045e-05, 0.207976, 295.333, 0.0225318, -364.038 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 515, - 2214, - 257 + ], "workers": [ ], "guests": [ - 878, - 336, - 1958, - 154, - 2780, - 805, - 1871, - 478, - 523, - 981, - 1279, - 2253, - 1016, - 1517 + ], "worktime": [ - 15, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -947.712, 0.0146713, -16.3391 )", - "xform": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -947.712, -1.2499, -16.3391 )", + "key": "Transform( 0.207976, -0.00017893, 0.978134, 0, 1, 0.00018293, -0.978134, -3.8045e-05, 0.207976, 295.333, 0.0225318, -364.038 )", + "xform": "Transform( 0.207976, -0.00017893, 0.978134, 0, 1, 0.00018293, -0.978134, -3.8045e-05, 0.207976, 295.333, -1.2499, -364.038 )", "index": 1170 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -897.222, 0.0140915, -16.6432 )": { - "id": "residental-house4", - "pattern_id": 1072, + "Transform( -0.207976, -0.00017893, -0.978134, 0, 1, -0.00018293, 0.978134, -3.8045e-05, -0.207976, 279.683, 0.019605, -367.366 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 2481, - 878, - 1149 + ], "workers": [ ], "guests": [ - 1551, - 981, - 1260, - 1871, - 719, - 1476, - 1016, - 257, - 2549, - 1958, - 1352, - 805, - 154, - 1279, - 1593, - 299, - 478, - 2214, - 523, - 336, - 453, - 997 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -897.222, 0.0140915, -16.6432 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -897.222, -1.2499, -16.6432 )", + "key": "Transform( -0.207976, -0.00017893, -0.978134, 0, 1, -0.00018293, 0.978134, -3.8045e-05, -0.207976, 279.683, 0.019605, -367.366 )", + "xform": "Transform( -0.207976, -0.00017893, -0.978134, 0, 1, -0.00018293, 0.978134, -3.8045e-05, -0.207976, 279.683, -1.2499, -367.366 )", "index": 1171 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -861.5, 0.0263901, -16.8584 )": { - "id": "residental-house5", - "pattern_id": 1073, + "Transform( -1, 1.8011e-08, 0.000335185, 0, 1, -5.37346e-05, -0.000335185, -5.37346e-05, -1, 222.503, 0.00142779, -503.031 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 2549, - 805, - 212 + ], "workers": [ ], "guests": [ - 1235, - 1149, - 257, - 1551, - 857, - 2780, - 478, - 1398, - 515, - 2253, - 453, - 1674, - 1623, - 2214, - 336, - 1260, - 1016, - 997, - 719, - 2481, - 1352, - 1476, - 2588, - 1279 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -861.5, 0.0263901, -16.8584 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -861.5, -1.2499, -16.8584 )", + "key": "Transform( -1, 1.8011e-08, 0.000335185, 0, 1, -5.37346e-05, -0.000335185, -5.37346e-05, -1, 222.503, 0.00142779, -503.031 )", + "xform": "Transform( -1, 1.8011e-08, 0.000335185, 0, 1, -5.37346e-05, -0.000335185, -5.37346e-05, -1, 222.503, -1.2499, -503.031 )", "index": 1172 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -816.773, 0.0901108, -17.1279 )": { - "id": "residental-house6", - "pattern_id": 1075, + "Transform( 1, 1.8011e-08, -0.000335185, 0, 1, 5.37346e-05, 0.000335185, -5.37346e-05, 1, 222.497, 0.00228754, -487.031 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1551, - 719, - 1260 + ], "workers": [ ], "guests": [ - 1352, - 2447, - 805, - 478, - 1623, - 857, - 257, - 1532, - 1018, - 2549, - 1323, - 1682, - 515, - 336, - 1149, - 1674, - 1871, - 190, - 878, - 2481, - 1580 + ], "worktime": [ - 17, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -816.773, 0.0901108, -17.1279 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -816.773, -1.2499, -17.1279 )", + "key": "Transform( 1, 1.8011e-08, -0.000335185, 0, 1, 5.37346e-05, 0.000335185, -5.37346e-05, 1, 222.497, 0.00228754, -487.031 )", + "xform": "Transform( 1, 1.8011e-08, -0.000335185, 0, 1, 5.37346e-05, 0.000335185, -5.37346e-05, 1, 222.497, -1.2499, -487.031 )", "index": 1173 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -785.039, 0.0532303, -17.319 )": { - "id": "residental-house7", - "pattern_id": 1076, + "Transform( 0.044399, -9.47586e-06, 0.999014, 0, 1, 9.48521e-06, -0.999014, -4.21134e-07, 0.044399, -156.337, 0.0220274, -592.226 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1476, - 190, - 1352 + ], "workers": [ ], "guests": [ - 1018, - 212, - 1580, - 181, - 2466, - 2481, - 2352, - 857, - 1674, - 878, - 1235, - 2588, - 805, - 719, - 1323, - 1871, - 1551, - 478 + ], "worktime": [ - 20, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -785.039, 0.0532303, -17.319 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -785.039, -1.2499, -17.319 )", + "key": "Transform( 0.044399, -9.47586e-06, 0.999014, 0, 1, 9.48521e-06, -0.999014, -4.21134e-07, 0.044399, -156.337, 0.0220274, -592.226 )", + "xform": "Transform( 0.044399, -9.47586e-06, 0.999014, 0, 1, 9.48521e-06, -0.999014, -4.21134e-07, 0.044399, -156.337, -1.2499, -592.226 )", "index": 1174 }, - "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -739.472, 0.0385437, -17.5935 )": { - "id": "residental-house8", - "pattern_id": 1078, + "Transform( -0.044399, -9.47586e-06, -0.999014, 0, 1, -9.48521e-06, 0.999014, -4.21134e-07, -0.044399, -172.322, 0.0218757, -592.937 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 1682, - 1398, - 2588 + ], "workers": [ ], "guests": [ - 1235, - 506, - 1551, - 1041, - 1532, - 805, - 1018, - 2489, - 1580, - 212, - 1352, - 1644, - 2447 + ], "worktime": [ - 16, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -739.472, 0.0385437, -17.5935 )", - "xform": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -739.472, -1.2499, -17.5935 )", + "key": "Transform( -0.044399, -9.47586e-06, -0.999014, 0, 1, -9.48521e-06, 0.999014, -4.21134e-07, -0.044399, -172.322, 0.0218757, -592.937 )", + "xform": "Transform( -0.044399, -9.47586e-06, -0.999014, 0, 1, -9.48521e-06, 0.999014, -4.21134e-07, -0.044399, -172.322, -1.2499, -592.937 )", "index": 1175 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -707.646, 0.0500183, -17.7853 )": { - "id": "residental-house9", - "pattern_id": 1079, + "Transform( -1, 1.81648e-08, 0.000338046, 0, 1, -5.37348e-05, -0.000338046, -5.37348e-05, -1, -19.3268, 0.0144224, -503.112 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 517, - 181, - 1580 + ], "workers": [ ], "guests": [ - 1644, - 1018, - 1674, - 1849, - 190, - 1352, - 1235, - 2031, - 1682, - 2489, - 1041, - 1451, - 1532, - 994, - 2515 + ], "worktime": [ - 18, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -707.646, 0.0500183, -17.7853 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -707.646, -1.2499, -17.7853 )", + "key": "Transform( -1, 1.81648e-08, 0.000338046, 0, 1, -5.37348e-05, -0.000338046, -5.37348e-05, -1, -19.3268, 0.0144224, -503.112 )", + "xform": "Transform( -1, 1.81648e-08, 0.000338046, 0, 1, -5.37348e-05, -0.000338046, -5.37348e-05, -1, -19.3268, -1.2499, -503.112 )", "index": 1176 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -662.653, 0.0590439, -18.0563 )": { - "id": "residental-house10", - "pattern_id": 1081, + "Transform( 1, 1.81648e-08, -0.000338046, 0, 1, 5.37348e-05, 0.000338046, -5.37348e-05, 1, -19.3322, 0.0152822, -487.112 )": { + "id": "bus-stop", + "pattern_id": 0, "generated": true, "residents": [ - 2489, - 2031, - 2352 + ], "workers": [ ], "guests": [ - 1323, - 2364, - 2412, - 1398, - 1682, - 1451, - 1623, - 1580, - 1532, - 1235, - 1476, - 190, - 1319, - 642, - 2017, - 1041, - 2470, - 181, - 994, - 1644, - 1018, - 1849, - 1352, - 2588, - 2515 + ], "worktime": [ - 20, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -662.653, 0.0590439, -18.0563 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -662.653, -1.2499, -18.0563 )", + "key": "Transform( 1, 1.81648e-08, -0.000338046, 0, 1, 5.37348e-05, 0.000338046, -5.37348e-05, 1, -19.3322, 0.0152822, -487.112 )", + "xform": "Transform( 1, 1.81648e-08, -0.000338046, 0, 1, 5.37348e-05, 0.000338046, -5.37348e-05, 1, -19.3322, -1.2499, -487.112 )", "index": 1177 }, - "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -613.528, 0.063179, -18.3522 )": { - "id": "residental-house11", - "pattern_id": 1083, + "1d179e40229a6466": { + "id": "residental-house13", + "pattern_id": 0, "generated": true, "residents": [ - 1451, - 1644, - 1041 + ], "workers": [ ], "guests": [ - 2031, - 1849, - 1580, - 1323, - 1532, - 2588, - 1247, - 2352, - 234, - 326, - 642, - 2515, - 2470, - 2017, - 1097, - 992, - 673 + ], "worktime": [ - 18, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -613.528, 0.063179, -18.3522 )", - "xform": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -613.528, -1.2499, -18.3522 )", + "key": "1d179e40229a6466", + "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -22, -1.2499, -2 )", "index": 1178 }, - "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -577.874, 0.0863876, -18.567 )": { - "id": "residental-house1", - "pattern_id": 1084, + "d58d605379f85b4b": { + "id": "residental-house13", + "pattern_id": 0, "generated": true, "residents": [ - 2364, - 994, - 2515 + ], "workers": [ ], "guests": [ - 2017, - 1097, - 1644, - 642, - 1580, - 673, - 2352, - 1247, - 840, - 326, - 181, - 385, - 1451, - 2031, - 1532, - 517, - 2489, - 2412, - 1319, - 2057, - 234, - 992, - 1041 + ], "worktime": [ - 13, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -577.874, 0.0863876, -18.567 )", - "xform": "Transform( -0.999982, 0, -0.00602355, 0, 1, 0, 0.00602355, 0, -0.999982, -577.874, -1.2499, -18.567 )", + "key": "d58d605379f85b4b", + "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -12, -1.2499, -2 )", "index": 1179 }, - "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -533.945, 0.0187073, -18.8317 )": { - "id": "residental-house2", - "pattern_id": 1086, + "bb21324a6e670f9e": { + "id": "residental-house12", + "pattern_id": 0, "generated": true, "residents": [ - 2412, - 992, - 2017 + ], "workers": [ ], "guests": [ - 994, - 2085, - 1864, - 1072, - 1371, - 2470, - 673, - 1849, - 787, - 1644 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -533.945, 0.0187073, -18.8317 )", - "xform": "Transform( -0.999982, 0, -0.00602431, 0, 1, 0, 0.00602431, 0, -0.999982, -533.945, -1.2499, -18.8317 )", + "key": "bb21324a6e670f9e", + "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 50, -1.2499, 34 )", "index": 1180 }, - "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -500.156, 0.029686, -19.0352 )": { - "id": "residental-house3", - "pattern_id": 1087, + "road__center2_road__lot__19__right__lot-small-m0": { + "id": "lot-small-m0", + "pattern_id": 0, "generated": true, "residents": [ - 326, - 1247, - 1371 + ], "workers": [ ], "guests": [ - 385, - 642, - 1488, - 1319, - 994, - 2470, - 2316, - 2534, - 322, - 2364, - 1849, - 1097, - 787, - 673, - 829, - 1864, - 2515 + ], "worktime": [ - 17, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -500.156, 0.029686, -19.0352 )", - "xform": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -500.156, -1.2499, -19.0352 )", + "key": "road__center2_road__lot__19__right__lot-small-m0", + "xform": "Transform( 0.979457, -2.6592e-07, -0.201653, 0, 1, -1.3187e-06, 0.201653, 1.29161e-06, 0.979457, -42.7095, 0.000137329, -200.999 )", "index": 1181 }, - "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -450.97, 0.15274, -19.3315 )": { - "id": "residental-house4", - "pattern_id": 1089, + "road__center2_road__lot__19__left__lot-small-m0": { + "id": "lot-small-m0", + "pattern_id": 0, "generated": true, "residents": [ - 840, - 2057, - 787 + ], "workers": [ ], "guests": [ - 144, - 1097, - 829, - 2534, - 992, - 2282, - 1496, - 2412, - 994, - 1371, - 322, - 2515, - 2193, - 413, - 385, - 1746, - 1072 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -450.97, 0.15274, -19.3315 )", - "xform": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -450.97, -1.2499, -19.3315 )", + "key": "road__center2_road__lot__19__left__lot-small-m0", + "xform": "Transform( 0.979457, -2.6592e-07, -0.201653, 0, 1, -1.3187e-06, 0.201653, 1.29161e-06, 0.979457, -91.2905, 0.000137329, -211.001 )", "index": 1182 }, - "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -415.141, 0.0908127, -19.5473 )": { - "id": "residental-house5", - "pattern_id": 1090, + "road__center2_road__lot__18__right__lot-small1": { + "id": "lot-small1", + "pattern_id": 0, "generated": true, "residents": [ - 2316, - 1072, - 1864 + ], "workers": [ ], "guests": [ - 144, - 2085, - 1647, - 1097, - 2057, - 1485, - 326, - 787, - 1336, - 385, - 2193, - 2604, - 2063, - 322, - 1371, - 2017, - 2412, - 2282, - 1559 + ], "worktime": [ - 14, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -415.141, 0.0908127, -19.5473 )", - "xform": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -415.141, -1.2499, -19.5473 )", + "key": "road__center2_road__lot__18__right__lot-small1", + "xform": "Transform( 0.97855, 8.09512e-08, -0.20601, 0, 1, 3.92947e-07, 0.206011, -3.84518e-07, 0.97855, -42.7722, 9.91823e-05, -145.584 )", "index": 1183 }, - "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -365.215, 0.0385437, -19.8481 )": { - "id": "residental-house6", - "pattern_id": 1092, + "road__center2_road__lot__18__left__lot-small1": { + "id": "lot-small1", + "pattern_id": 0, "generated": true, "residents": [ - 1488, - 322, - 1496 + ], "workers": [ ], "guests": [ - 676, - 1647, - 144, - 2282, - 1746, - 1203, - 1247, - 2422, - 1397, - 121, - 1864, - 1524, - 1072, - 1105, - 1233, - 1485, - 1806, - 326, - 787, - 840, - 1371, - 2604, - 1298, - 1559, - 2193, - 251, - 2063, - 2316, - 2057 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -365.215, 0.0385437, -19.8481 )", - "xform": "Transform( -0.999982, 0, -0.00602393, 0, 1, 0, 0.00602393, 0, -0.999982, -365.215, -1.2499, -19.8481 )", + "key": "road__center2_road__lot__18__left__lot-small1", + "xform": "Transform( 0.97855, 8.09512e-08, -0.20601, 0, 1, 3.92947e-07, 0.206011, -3.84518e-07, 0.97855, -113.228, 9.91823e-05, -160.416 )", "index": 1184 }, - "Transform( -0.999742, 0, 0.0227214, 0, 1, 0, -0.0227214, 0, -0.999742, -300.228, 0.0385437, -19.0961 )": { - "id": "residental-house7", - "pattern_id": 1093, + "road__center2_road__lot__15__right__lot-large1": { + "id": "lot-large1", + "pattern_id": 0, "generated": true, "residents": [ - 2604, - 1559, - 2063 + ], "workers": [ ], "guests": [ - 1203, - 2006, - 1072, - 2643, - 1233, - 1806, - 121, - 2422, - 1864, - 676, - 1137, - 1397, - 619, - 1524, - 322, - 1298, - 1488, - 1159 + ], "worktime": [ - 16, + 0, 23 ], - "key": "Transform( -0.999742, 0, 0.0227214, 0, 1, 0, -0.0227214, 0, -0.999742, -300.228, 0.0385437, -19.0961 )", - "xform": "Transform( -0.999742, 0, 0.0227214, 0, 1, 0, -0.0227214, 0, -0.999742, -300.228, -1.2499, -19.0961 )", + "key": "road__center2_road__lot__15__right__lot-large1", + "xform": "Transform( -0.0265393, -0.000506828, -0.999648, 0, 1, -0.000507007, 0.999648, -1.34556e-05, -0.0265393, -164.048, 0.0290222, 39.4662 )", "index": 1185 }, - "Transform( -0.999742, 0, 0.0227216, 0, 1, 0, -0.0227216, 0, -0.999742, -250.222, 0.0385437, -17.9596 )": { - "id": "residental-house8", - "pattern_id": 1095, + "road__center2_road__lot__15__left__lot-small1": { + "id": "lot-small1", + "pattern_id": 0, "generated": true, "residents": [ - 676, - 1203, - 1105 + ], "workers": [ ], "guests": [ - 1397, - 619, - 597, - 1137, - 2063, - 2643, - 1559, - 678, - 1233, - 2604, - 251, - 2422, - 1159, - 322, - 1488, - 1496 + ], "worktime": [ - 18, + 0, 23 ], - "key": "Transform( -0.999742, 0, 0.0227216, 0, 1, 0, -0.0227216, 0, -0.999742, -250.222, 0.0385437, -17.9596 )", - "xform": "Transform( -0.999742, 0, 0.0227216, 0, 1, 0, -0.0227216, 0, -0.999742, -250.222, -1.2499, -17.9596 )", + "key": "road__center2_road__lot__15__left__lot-small1", + "xform": "Transform( -0.0265393, -0.000506828, -0.999648, 0, 1, -0.000507007, 0.999648, -1.34556e-05, -0.0265393, -160.545, 0.0290222, -92.4873 )", "index": 1186 }, - "Transform( -0.999742, 0, 0.0227212, 0, 1, 0, -0.0227212, 0, -0.999742, -215.399, 0.0385437, -17.1682 )": { - "id": "residental-house9", - "pattern_id": 1096, + "road__center2_road__lot__14__left__lot-small1": { + "id": "lot-small1", + "pattern_id": 0, "generated": true, "residents": [ - 1806, - 2422, - 1298 + ], "workers": [ ], "guests": [ - 2120, - 2496, - 2643, - 463, - 1559, - 406, - 2063, - 1203, - 1240, - 322, - 1105, - 2006, - 315, - 251, - 676, - 1233, - 2604, - 619, - 1397, - 1137, - 567, - 202 + ], "worktime": [ - 15, + 0, 23 ], - "key": "Transform( -0.999742, 0, 0.0227212, 0, 1, 0, -0.0227212, 0, -0.999742, -215.399, 0.0385437, -17.1682 )", - "xform": "Transform( -0.999742, 0, 0.0227212, 0, 1, 0, -0.0227212, 0, -0.999742, -215.399, -1.2499, -17.1682 )", + "key": "road__center2_road__lot__14__left__lot-small1", + "xform": "Transform( -0.0344623, -1.57662e-06, -0.999406, 0, 1, -1.57756e-06, 0.999406, -5.43664e-08, -0.0344623, -245.863, 0.000320435, -91.9804 )", "index": 1187 }, - "Transform( -0.999742, 0, 0.0227212, 0, 1, 0, -0.0227212, 0, -0.999742, -165.339, 0.0385437, -16.0304 )": { - "id": "residental-house10", - "pattern_id": 1098, + "road__center2_road__lot__13__right__lot-small2": { + "id": "lot-small2", + "pattern_id": 0, "generated": true, "residents": [ - 463, - 678, - 597 + ], "workers": [ ], "guests": [ - 2496, - 1559, - 406, - 2422, - 202, - 1203, - 2604, - 2063, - 2006, - 1298, - 567, - 2399, - 1806, - 676, - 1105 + ], "worktime": [ - 15, + 0, 23 ], - "key": "Transform( -0.999742, 0, 0.0227212, 0, 1, 0, -0.0227212, 0, -0.999742, -165.339, 0.0385437, -16.0304 )", - "xform": "Transform( -0.999742, 0, 0.0227212, 0, 1, 0, -0.0227212, 0, -0.999742, -165.339, -1.2499, -16.0304 )", + "key": "road__center2_road__lot__13__right__lot-small2", + "xform": "Transform( 0, 0.00106303, -0.999999, 0, 0.999999, 0.00106303, 1, 0, 0, -303, 0.0289764, 35.9999 )", "index": 1188 }, - "Transform( -0.995037, 0, 0.0995037, 0, 1, 0, -0.0995037, 0, -0.995037, -85.4902, 0.0385437, -11.549 )": { - "id": "residental-house11", - "pattern_id": 1100, + "road__center2_road__lot__12__right__lot-small-m0": { + "id": "lot-small-m0", + "pattern_id": 0, "generated": true, "residents": [ - 406, - 315, - 2496 + ], "workers": [ ], "guests": [ - 729, - 1240, - 2422, - 1291, - 1137, - 2357, - 1825, - 2028, - 1814, - 2006, - 2275, - 1204, - 872, - 2399, - 2643, - 2507, - 1298, - 597, - 201, - 574, - 402, - 2756 + ], "worktime": [ - 16, + 0, 23 ], - "key": "Transform( -0.995037, 0, 0.0995037, 0, 1, 0, -0.0995037, 0, -0.995037, -85.4902, 0.0385437, -11.549 )", - "xform": "Transform( -0.995037, 0, 0.0995037, 0, 1, 0, -0.0995037, 0, -0.995037, -85.4902, -1.2499, -11.549 )", + "key": "road__center2_road__lot__12__right__lot-small-m0", + "xform": "Transform( 0, -0.000873681, -1, 0, 1, -0.000873681, 1, 0, 0, -363, 0.0288467, -35.2 )", "index": 1189 }, - "Transform( -0.995037, 0, 0.0995037, 0, 1, 0, -0.0995037, 0, -0.995037, -50.7963, 0.176872, -8.07963 )": { - "id": "residental-house1", - "pattern_id": 1101, + "road__center2_road__lot__12__left__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, "generated": true, "residents": [ - 613, - 2357, - 2399 + ], "workers": [ ], "guests": [ - 2219, - 2731, - 2496, - 2064, - 202, - 2756, - 2028, - 2006, - 729, - 1240, - 1291, - 2507, - 2218, - 1660, - 406, - 597, - 2643, - 1814 + ], "worktime": [ - 19, + 0, 23 ], - "key": "Transform( -0.995037, 0, 0.0995037, 0, 1, 0, -0.0995037, 0, -0.995037, -50.7963, 0.176872, -8.07963 )", - "xform": "Transform( -0.995037, 0, 0.0995037, 0, 1, 0, -0.0995037, 0, -0.995037, -50.7963, -1.2499, -8.07963 )", + "key": "road__center2_road__lot__12__left__lot-small0", + "xform": "Transform( 0, -0.000873681, -1, 0, 1, -0.000873681, 1, 0, 0, -363, 0.0288467, -93 )", "index": 1190 }, "Transform( -1, 0, 0, 0, 1, 0, 0, 0, -1, 24.0549, 0.0385437, -5 )": { @@ -46341,8 +45418,8 @@ "xform": "Transform( 0.0905355, 0.000477676, 0.995893, 0, 1, -0.000479646, -0.995893, 4.34249e-05, 0.0905355, -429.533, -1.2499, -476.776 )", "index": 1414 }, - "Transform( -0.0905355, 0.000477676, -0.995893, 0, 1, 0.000479646, 0.995893, 4.34249e-05, -0.0905355, -445.467, 0.0428081, -478.224 )": { - "id": "bus-stop", + "road__center2_road__lot__0__left__lot-small0": { + "id": "lot-small0", "pattern_id": 0, "generated": true, "residents": [ @@ -46358,12 +45435,12 @@ 0, 23 ], - "key": "Transform( -0.0905355, 0.000477676, -0.995893, 0, 1, 0.000479646, 0.995893, 4.34249e-05, -0.0905355, -445.467, 0.0428081, -478.224 )", - "xform": "Transform( -0.0905355, 0.000477676, -0.995893, 0, 1, 0.000479646, 0.995893, 4.34249e-05, -0.0905355, -445.467, -1.2499, -478.224 )", + "key": "road__center2_road__lot__0__left__lot-small0", + "xform": "Transform( -0.990992, -1.36826e-07, 0.133918, 0, 1, 1.02171e-06, -0.133918, 1.01251e-06, -0.990992, -1076.3, 0.000221252, -198.581 )", "index": 1415 }, - "Transform( 0, -9.15546e-06, 1, 0, 1, 9.15546e-06, -1, 0, 0, -557, 0.0216034, -505 )": { - "id": "bus-stop", + "road__center2_road__lot__0__right__lot-small0": { + "id": "lot-small0", "pattern_id": 0, "generated": true, "residents": [ @@ -46379,766 +45456,10 @@ 0, 23 ], - "key": "Transform( 0, -9.15546e-06, 1, 0, 1, 9.15546e-06, -1, 0, 0, -557, 0.0216034, -505 )", - "xform": "Transform( 0, -9.15546e-06, 1, 0, 1, 9.15546e-06, -1, 0, 0, -557, -1.2499, -505 )", + "key": "road__center2_road__lot__0__right__lot-small0", + "xform": "Transform( -0.990992, -1.36826e-07, 0.133918, 0, 1, 1.02171e-06, -0.133918, 1.01251e-06, -0.990992, -1141.7, 0.000221252, -207.419 )", "index": 1416 }, - "Transform( 0, -9.15546e-06, -1, 0, 1, -9.15546e-06, 1, 0, 0, -573, 0.0214569, -505 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0, -9.15546e-06, -1, 0, 1, -9.15546e-06, 1, 0, 0, -573, 0.0214569, -505 )", - "xform": "Transform( 0, -9.15546e-06, -1, 0, 1, -9.15546e-06, 1, 0, 0, -573, -1.2499, -505 )", - "index": 1417 - }, - "Transform( 0.0238027, -0.000152066, 0.999717, 0, 1, 0.000152109, -0.999717, -3.6206e-06, 0.0238027, -434.502, 0.0429191, -344.81 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.0238027, -0.000152066, 0.999717, 0, 1, 0.000152109, -0.999717, -3.6206e-06, 0.0238027, -434.502, 0.0429191, -344.81 )", - "xform": "Transform( 0.0238027, -0.000152066, 0.999717, 0, 1, 0.000152109, -0.999717, -3.6206e-06, 0.0238027, -434.502, -1.2499, -344.81 )", - "index": 1418 - }, - "Transform( -0.0238027, -0.000152066, -0.999717, 0, 1, -0.000152109, 0.999717, -3.6206e-06, -0.0238027, -450.498, 0.0404854, -345.19 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.0238027, -0.000152066, -0.999717, 0, 1, -0.000152109, 0.999717, -3.6206e-06, -0.0238027, -450.498, 0.0404854, -345.19 )", - "xform": "Transform( -0.0238027, -0.000152066, -0.999717, 0, 1, -0.000152109, 0.999717, -3.6206e-06, -0.0238027, -450.498, -1.2499, -345.19 )", - "index": 1419 - }, - "Transform( -0.999445, 3.96291e-06, 0.033315, 0, 1, -0.000118953, -0.033315, -0.000118887, -0.999445, -369.733, 0.0478002, -245.496 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.999445, 3.96291e-06, 0.033315, 0, 1, -0.000118953, -0.033315, -0.000118887, -0.999445, -369.733, 0.0478002, -245.496 )", - "xform": "Transform( -0.999445, 3.96291e-06, 0.033315, 0, 1, -0.000118953, -0.033315, -0.000118887, -0.999445, -369.733, -1.2499, -245.496 )", - "index": 1420 - }, - "Transform( 0.999445, 3.96291e-06, -0.033315, 0, 1, 0.000118953, 0.033315, -0.000118887, 0.999445, -370.267, 0.0497034, -229.504 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.999445, 3.96291e-06, -0.033315, 0, 1, 0.000118953, 0.033315, -0.000118887, 0.999445, -370.267, 0.0497034, -229.504 )", - "xform": "Transform( 0.999445, 3.96291e-06, -0.033315, 0, 1, 0.000118953, 0.033315, -0.000118887, 0.999445, -370.267, -1.2499, -229.504 )", - "index": 1421 - }, - "Transform( -0.999261, 1.29825e-06, 0.0384338, 0, 1, -3.37789e-05, -0.0384338, -3.37539e-05, -0.999261, -829.693, 0.0185591, -420.494 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.999261, 1.29825e-06, 0.0384338, 0, 1, -3.37789e-05, -0.0384338, -3.37539e-05, -0.999261, -829.693, 0.0185591, -420.494 )", - "xform": "Transform( -0.999261, 1.29825e-06, 0.0384338, 0, 1, -3.37789e-05, -0.0384338, -3.37539e-05, -0.999261, -829.693, -1.2499, -420.494 )", - "index": 1422 - }, - "Transform( 0.999261, 1.29825e-06, -0.0384338, 0, 1, 3.37789e-05, 0.0384338, -3.37539e-05, 0.999261, -830.307, 0.0190996, -404.506 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.999261, 1.29825e-06, -0.0384338, 0, 1, 3.37789e-05, 0.0384338, -3.37539e-05, 0.999261, -830.307, 0.0190996, -404.506 )", - "xform": "Transform( 0.999261, 1.29825e-06, -0.0384338, 0, 1, 3.37789e-05, 0.0384338, -3.37539e-05, 0.999261, -830.307, -1.2499, -404.506 )", - "index": 1423 - }, - "Transform( -0.964764, 0.000148175, 0.263118, 0, 1, -0.00056315, -0.263119, -0.000543307, -0.964763, -1130.4, 0.0325736, -255.218 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.964764, 0.000148175, 0.263118, 0, 1, -0.00056315, -0.263119, -0.000543307, -0.964763, -1130.4, 0.0325736, -255.218 )", - "xform": "Transform( -0.964764, 0.000148175, 0.263118, 0, 1, -0.00056315, -0.263119, -0.000543307, -0.964763, -1130.4, -1.2499, -255.218 )", - "index": 1424 - }, - "Transform( 0.964764, 0.000148175, -0.263118, 0, 1, 0.00056315, 0.263119, -0.000543307, 0.964763, -1134.6, 0.0415841, -239.782 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.964764, 0.000148175, -0.263118, 0, 1, 0.00056315, 0.263119, -0.000543307, 0.964763, -1134.6, 0.0415841, -239.782 )", - "xform": "Transform( 0.964764, 0.000148175, -0.263118, 0, 1, 0.00056315, 0.263119, -0.000543307, 0.964763, -1134.6, -1.2499, -239.782 )", - "index": 1425 - }, - "Transform( 0.155962, -0.000173951, 0.987763, 0, 1, 0.000176106, -0.987763, -2.74658e-05, 0.155962, -774.598, 0.0508626, -286.252 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.155962, -0.000173951, 0.987763, 0, 1, 0.000176106, -0.987763, -2.74658e-05, 0.155962, -774.598, 0.0508626, -286.252 )", - "xform": "Transform( 0.155962, -0.000173951, 0.987763, 0, 1, 0.000176106, -0.987763, -2.74658e-05, 0.155962, -774.598, -1.2499, -286.252 )", - "index": 1426 - }, - "Transform( -0.155962, -0.000173951, -0.987763, 0, 1, -0.000176106, 0.987763, -2.74658e-05, -0.155962, -790.402, 0.0480449, -288.748 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.155962, -0.000173951, -0.987763, 0, 1, -0.000176106, 0.987763, -2.74658e-05, -0.155962, -790.402, 0.0480449, -288.748 )", - "xform": "Transform( -0.155962, -0.000173951, -0.987763, 0, 1, -0.000176106, 0.987763, -2.74658e-05, -0.155962, -790.402, -1.2499, -288.748 )", - "index": 1427 - }, - "Transform( 0.998969, -6.1665e-06, 0.0454081, 0, 1, 0.000135802, -0.0454081, -0.000135662, 0.998968, -264.637, 0.0295898, -799.508 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.998969, -6.1665e-06, 0.0454081, 0, 1, 0.000135802, -0.0454081, -0.000135662, 0.998968, -264.637, 0.0295898, -799.508 )", - "xform": "Transform( 0.998969, -6.1665e-06, 0.0454081, 0, 1, 0.000135802, -0.0454081, -0.000135662, 0.998968, -264.637, -1.2499, -799.508 )", - "index": 1428 - }, - "Transform( -0.998969, -6.16649e-06, -0.0454081, 0, 1, -0.000135802, 0.0454081, -0.000135661, -0.998968, -265.363, 0.027417, -815.492 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.998969, -6.16649e-06, -0.0454081, 0, 1, -0.000135802, 0.0454081, -0.000135661, -0.998968, -265.363, 0.027417, -815.492 )", - "xform": "Transform( -0.998969, -6.16649e-06, -0.0454081, 0, 1, -0.000135802, 0.0454081, -0.000135661, -0.998968, -265.363, -1.2499, -815.492 )", - "index": 1429 - }, - "Transform( 0.242536, 8.24973e-05, 0.970142, 0, 1, -8.50363e-05, -0.970143, 2.06243e-05, 0.242536, -804.739, 0.0493533, -148.06 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.242536, 8.24973e-05, 0.970142, 0, 1, -8.50363e-05, -0.970143, 2.06243e-05, 0.242536, -804.739, 0.0493533, -148.06 )", - "xform": "Transform( 0.242536, 8.24973e-05, 0.970142, 0, 1, -8.50363e-05, -0.970143, 2.06243e-05, 0.242536, -804.739, -1.2499, -148.06 )", - "index": 1430 - }, - "Transform( -0.242536, 8.24973e-05, -0.970142, 0, 1, 8.50363e-05, 0.970143, 2.06243e-05, -0.242536, -820.261, 0.0507139, -151.94 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.242536, 8.24973e-05, -0.970142, 0, 1, 8.50363e-05, 0.970143, 2.06243e-05, -0.242536, -820.261, 0.0507139, -151.94 )", - "xform": "Transform( -0.242536, 8.24973e-05, -0.970142, 0, 1, 8.50363e-05, 0.970143, 2.06243e-05, -0.242536, -820.261, -1.2499, -151.94 )", - "index": 1431 - }, - "Transform( 0.196116, -9.80924e-05, 0.980581, 0, 1, 0.000100035, -0.980581, -1.96185e-05, 0.196116, -304.655, 0.0495521, -145.931 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.196116, -9.80924e-05, 0.980581, 0, 1, 0.000100035, -0.980581, -1.96185e-05, 0.196116, -304.655, 0.0495521, -145.931 )", - "xform": "Transform( 0.196116, -9.80924e-05, 0.980581, 0, 1, 0.000100035, -0.980581, -1.96185e-05, 0.196116, -304.655, -1.2499, -145.931 )", - "index": 1432 - }, - "Transform( -0.196116, -9.80924e-05, -0.980581, 0, 1, -0.000100035, 0.980581, -1.96185e-05, -0.196116, -320.345, 0.0479515, -149.069 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.196116, -9.80924e-05, -0.980581, 0, 1, -0.000100035, 0.980581, -1.96185e-05, -0.196116, -320.345, 0.0479515, -149.069 )", - "xform": "Transform( -0.196116, -9.80924e-05, -0.980581, 0, 1, -0.000100035, 0.980581, -1.96185e-05, -0.196116, -320.345, -1.2499, -149.069 )", - "index": 1433 - }, - "Transform( -0.999753, 0, 0.0222168, 0, 1, 0, -0.0222168, 0, -0.999753, -217.322, 0.0576782, -65.498 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.999753, 0, 0.0222168, 0, 1, 0, -0.0222168, 0, -0.999753, -217.322, 0.0576782, -65.498 )", - "xform": "Transform( -0.999753, 0, 0.0222168, 0, 1, 0, -0.0222168, 0, -0.999753, -217.322, -1.2499, -65.498 )", - "index": 1434 - }, - "Transform( 0.999753, 0, -0.0222168, 0, 1, 0, 0.0222168, 0, 0.999753, -217.678, 0.0576782, -49.502 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.999753, 0, -0.0222168, 0, 1, 0, 0.0222168, 0, 0.999753, -217.678, 0.0576782, -49.502 )", - "xform": "Transform( 0.999753, 0, -0.0222168, 0, 1, 0, 0.0222168, 0, 0.999753, -217.678, -1.2499, -49.502 )", - "index": 1435 - }, - "Transform( 0.141421, -0.000248657, 0.98995, 0, 1, 0.000251181, -0.98995, -3.55222e-05, 0.14142, -729.58, 0.0340682, -576.369 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.141421, -0.000248657, 0.98995, 0, 1, 0.000251181, -0.98995, -3.55222e-05, 0.14142, -729.58, 0.0340682, -576.369 )", - "xform": "Transform( 0.141421, -0.000248657, 0.98995, 0, 1, 0.000251181, -0.98995, -3.55222e-05, 0.14142, -729.58, -1.2499, -576.369 )", - "index": 1436 - }, - "Transform( -0.141421, -0.000248657, -0.98995, 0, 1, -0.000251181, 0.98995, -3.55222e-05, -0.14142, -745.42, 0.0300492, -578.631 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.141421, -0.000248657, -0.98995, 0, 1, -0.000251181, 0.98995, -3.55222e-05, -0.14142, -745.42, 0.0300492, -578.631 )", - "xform": "Transform( -0.141421, -0.000248657, -0.98995, 0, 1, -0.000251181, 0.98995, -3.55222e-05, -0.14142, -745.42, -1.2499, -578.631 )", - "index": 1437 - }, - "Transform( 0.999753, -7.13883e-07, 0.0222137, 0, 1, 3.2137e-05, -0.0222137, -3.21291e-05, 0.999753, -504.793, 0.0258359, -795.669 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.999753, -7.13883e-07, 0.0222137, 0, 1, 3.2137e-05, -0.0222137, -3.21291e-05, 0.999753, -504.793, 0.0258359, -795.669 )", - "xform": "Transform( 0.999753, -7.13883e-07, 0.0222137, 0, 1, 3.2137e-05, -0.0222137, -3.21291e-05, 0.999753, -504.793, -1.2499, -795.669 )", - "index": 1438 - }, - "Transform( -0.999753, -7.13883e-07, -0.0222137, 0, 1, -3.2137e-05, 0.0222137, -3.21291e-05, -0.999753, -505.148, 0.0253218, -811.666 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.999753, -7.13883e-07, -0.0222137, 0, 1, -3.2137e-05, 0.0222137, -3.21291e-05, -0.999753, -505.148, 0.0253218, -811.666 )", - "xform": "Transform( -0.999753, -7.13883e-07, -0.0222137, 0, 1, -3.2137e-05, 0.0222137, -3.21291e-05, -0.999753, -505.148, -1.2499, -811.666 )", - "index": 1439 - }, - "Transform( 0.0830455, 2.20618e-05, 0.996546, 0, 1, -2.21383e-05, -0.996546, 1.83848e-06, 0.0830455, -444.528, 0.0555017, -149.336 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.0830455, 2.20618e-05, 0.996546, 0, 1, -2.21383e-05, -0.996546, 1.83848e-06, 0.0830455, -444.528, 0.0555017, -149.336 )", - "xform": "Transform( 0.0830455, 2.20618e-05, 0.996546, 0, 1, -2.21383e-05, -0.996546, 1.83848e-06, 0.0830455, -444.528, -1.2499, -149.336 )", - "index": 1440 - }, - "Transform( -0.0830455, 2.20618e-05, -0.996546, 0, 1, 2.21383e-05, 0.996546, 1.83848e-06, -0.0830455, -460.472, 0.055856, -150.664 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.0830455, 2.20618e-05, -0.996546, 0, 1, 2.21383e-05, 0.996546, 1.83848e-06, -0.0830455, -460.472, 0.055856, -150.664 )", - "xform": "Transform( -0.0830455, 2.20618e-05, -0.996546, 0, 1, 2.21383e-05, 0.996546, 1.83848e-06, -0.0830455, -460.472, -1.2499, -150.664 )", - "index": 1441 - }, - "Transform( 0.207976, -0.00017893, 0.978134, 0, 1, 0.00018293, -0.978134, -3.8045e-05, 0.207976, 295.333, 0.0225318, -364.038 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.207976, -0.00017893, 0.978134, 0, 1, 0.00018293, -0.978134, -3.8045e-05, 0.207976, 295.333, 0.0225318, -364.038 )", - "xform": "Transform( 0.207976, -0.00017893, 0.978134, 0, 1, 0.00018293, -0.978134, -3.8045e-05, 0.207976, 295.333, -1.2499, -364.038 )", - "index": 1442 - }, - "Transform( -0.207976, -0.00017893, -0.978134, 0, 1, -0.00018293, 0.978134, -3.8045e-05, -0.207976, 279.683, 0.019605, -367.366 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.207976, -0.00017893, -0.978134, 0, 1, -0.00018293, 0.978134, -3.8045e-05, -0.207976, 279.683, 0.019605, -367.366 )", - "xform": "Transform( -0.207976, -0.00017893, -0.978134, 0, 1, -0.00018293, 0.978134, -3.8045e-05, -0.207976, 279.683, -1.2499, -367.366 )", - "index": 1443 - }, - "Transform( -1, 1.8011e-08, 0.000335185, 0, 1, -5.37346e-05, -0.000335185, -5.37346e-05, -1, 222.503, 0.00142779, -503.031 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -1, 1.8011e-08, 0.000335185, 0, 1, -5.37346e-05, -0.000335185, -5.37346e-05, -1, 222.503, 0.00142779, -503.031 )", - "xform": "Transform( -1, 1.8011e-08, 0.000335185, 0, 1, -5.37346e-05, -0.000335185, -5.37346e-05, -1, 222.503, -1.2499, -503.031 )", - "index": 1444 - }, - "Transform( 1, 1.8011e-08, -0.000335185, 0, 1, 5.37346e-05, 0.000335185, -5.37346e-05, 1, 222.497, 0.00228754, -487.031 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 1, 1.8011e-08, -0.000335185, 0, 1, 5.37346e-05, 0.000335185, -5.37346e-05, 1, 222.497, 0.00228754, -487.031 )", - "xform": "Transform( 1, 1.8011e-08, -0.000335185, 0, 1, 5.37346e-05, 0.000335185, -5.37346e-05, 1, 222.497, -1.2499, -487.031 )", - "index": 1445 - }, - "Transform( 0.044399, -9.47586e-06, 0.999014, 0, 1, 9.48521e-06, -0.999014, -4.21134e-07, 0.044399, -156.337, 0.0220274, -592.226 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 0.044399, -9.47586e-06, 0.999014, 0, 1, 9.48521e-06, -0.999014, -4.21134e-07, 0.044399, -156.337, 0.0220274, -592.226 )", - "xform": "Transform( 0.044399, -9.47586e-06, 0.999014, 0, 1, 9.48521e-06, -0.999014, -4.21134e-07, 0.044399, -156.337, -1.2499, -592.226 )", - "index": 1446 - }, - "Transform( -0.044399, -9.47586e-06, -0.999014, 0, 1, -9.48521e-06, 0.999014, -4.21134e-07, -0.044399, -172.322, 0.0218757, -592.937 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -0.044399, -9.47586e-06, -0.999014, 0, 1, -9.48521e-06, 0.999014, -4.21134e-07, -0.044399, -172.322, 0.0218757, -592.937 )", - "xform": "Transform( -0.044399, -9.47586e-06, -0.999014, 0, 1, -9.48521e-06, 0.999014, -4.21134e-07, -0.044399, -172.322, -1.2499, -592.937 )", - "index": 1447 - }, - "Transform( -1, 1.81648e-08, 0.000338046, 0, 1, -5.37348e-05, -0.000338046, -5.37348e-05, -1, -19.3268, 0.0144224, -503.112 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( -1, 1.81648e-08, 0.000338046, 0, 1, -5.37348e-05, -0.000338046, -5.37348e-05, -1, -19.3268, 0.0144224, -503.112 )", - "xform": "Transform( -1, 1.81648e-08, 0.000338046, 0, 1, -5.37348e-05, -0.000338046, -5.37348e-05, -1, -19.3268, -1.2499, -503.112 )", - "index": 1448 - }, - "Transform( 1, 1.81648e-08, -0.000338046, 0, 1, 5.37348e-05, 0.000338046, -5.37348e-05, 1, -19.3322, 0.0152822, -487.112 )": { - "id": "bus-stop", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "Transform( 1, 1.81648e-08, -0.000338046, 0, 1, 5.37348e-05, 0.000338046, -5.37348e-05, 1, -19.3322, 0.0152822, -487.112 )", - "xform": "Transform( 1, 1.81648e-08, -0.000338046, 0, 1, 5.37348e-05, 0.000338046, -5.37348e-05, 1, -19.3322, -1.2499, -487.112 )", - "index": 1449 - }, - "1d179e40229a6466": { - "id": "residental-house13", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "1d179e40229a6466", - "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -22, -1.2499, -2 )", - "index": 1450 - }, - "d58d605379f85b4b": { - "id": "residental-house13", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "d58d605379f85b4b", - "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -12, -1.2499, -2 )", - "index": 1451 - }, - "bb21324a6e670f9e": { - "id": "residental-house12", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "bb21324a6e670f9e", - "xform": "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 50, -1.2499, 34 )", - "index": 1452 - }, "road__center2_road__transit_stop__0__0__left__bus-stop": { "id": "bus-stop", "pattern_id": 0, @@ -47157,11 +45478,11 @@ 23 ], "key": "road__center2_road__transit_stop__0__0__left__bus-stop", - "xform": "Transform( -0.074558, -1.44516e-05, -0.997217, -0.00019383, 1, -8.47259e-12, 0.997217, 0.000193291, -0.0745581, -1107.74, 0.0113351, -194.692 )", - "index": 1453 + "xform": "Transform( -0.133918, -1.36826e-07, -0.990992, -1.02171e-06, 1, -4.46605e-14, 0.990992, 1.01251e-06, -0.133918, -1104.75, 0.000208313, -189.647 )", + "index": 1417 }, - "road__center2_road__lot__7__right__0__building-residental-house1": { - "id": "residental-house1", + "road__center2_road__transit_stop__0__0__right__bus-stop": { + "id": "bus-stop", "pattern_id": 0, "generated": true, "residents": [ @@ -47177,9 +45498,198 @@ 0, 23 ], - "key": "road__center2_road__lot__7__right__0__building-residental-house1", - "xform": "Transform( -0.961524, 2.87899e-07, 0.274721, -9.16164e-14, 1, -1.04797e-06, -0.274721, -1.00765e-06, -0.961524, -37.119, 0.000116433, -111.629 )", - "index": 1454 + "key": "road__center2_road__transit_stop__0__0__right__bus-stop", + "xform": "Transform( -0.133919, -1.36827e-07, -0.990992, -1.02171e-06, 1, -4.46605e-14, 0.990992, 1.01251e-06, -0.133919, -1115.38, 0.000210357, -193.102 )", + "index": 1418 + }, + "road__center2_road__lot__1__left__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__1__left__lot-small0", + "xform": "Transform( -0.993151, -6.50973e-08, 0.116841, 0, 1, 5.57143e-07, -0.116841, 5.53327e-07, -0.993151, -1085.23, 0.000164032, -128.144 )", + "index": 1419 + }, + "road__center2_road__lot__1__right__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__1__right__lot-small0", + "xform": "Transform( -0.993151, -6.50972e-08, 0.116841, 0, 1, 5.57142e-07, -0.116841, 5.53326e-07, -0.993151, -1150.77, 0.100164, -135.856 )", + "index": 1420 + }, + "road__center2_road__lot__2__right__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__2__right__lot-small0", + "xform": "Transform( -1, 0, 0, 0, 1, -1.60621e-06, 0, -1.60621e-06, -1, -1155, 0.000175572, -78.9403 )", + "index": 1421 + }, + "road__center2_road__lot__3__right__lot-large2": { + "id": "lot-large2", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__3__right__lot-large2", + "xform": "Transform( 0, -2.49928e-06, -1, 0, 1, -2.49928e-06, 1, 0, 0, -1093, 0.000278473, 136 )", + "index": 1422 + }, + "road__center2_road__lot__4__left__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__4__left__lot-small0", + "xform": "Transform( 0, 8.71929e-07, -1, 0, 1, 8.71929e-07, 1, 0, 0, -1029, 0.000320435, -93 )", + "index": 1423 + }, + "road__center2_road__lot__5__left__lot-small1": { + "id": "lot-small1", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__5__left__lot-small1", + "xform": "Transform( 0, 9.99083e-07, -1, 0, 1, 9.99083e-07, 1, 0, 0, -952, 0.000247955, -96 )", + "index": 1424 + }, + "road__center2_road__lot__6__left__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__6__left__lot-small0", + "xform": "Transform( 0, -0.000559184, -1, 0, 1, -0.000559184, 1, 0, 0, -872.5, 0.0211754, -93 )", + "index": 1425 + }, + "road__center2_road__lot__6__right__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__6__right__lot-small0", + "xform": "Transform( 0, -0.000559184, -1, 0, 1, -0.000559184, 1, 0, 0, -872.5, 0.0211754, -27 )", + "index": 1426 + }, + "road__center2_road__lot__7__right__lot-small2": { + "id": "lot-small2", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__7__right__lot-small2", + "xform": "Transform( 0, 0.00058972, -1, 0, 1, 0.00058972, 1, 0, 0, -799.5, 0.0212097, 36 )", + "index": 1427 }, "road__center2_road__transit_stop__7__0__left__bus-stop": { "id": "bus-stop", @@ -47199,10 +45709,73 @@ 23 ], "key": "road__center2_road__transit_stop__7__0__left__bus-stop", - "xform": "Transform( -0.274721, 2.87899e-07, -0.961524, 1.04797e-06, 1, -4.58082e-14, 0.961524, -1.00765e-06, -0.274721, -93.3132, 0.000131629, -112.604 )", - "index": 1455 + "xform": "Transform( -1, 0.000589721, 4.37114e-08, 0.000589721, 1, -2.57775e-11, -4.37114e-08, 0, -1, -834, 0.0415551, -65 )", + "index": 1428 }, - "road__center2_road__lot__8__left__lot-small1": { + "road__center2_road__transit_stop__7__0__right__bus-stop": { + "id": "bus-stop", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__transit_stop__7__0__right__bus-stop", + "xform": "Transform( 1, 0.000589721, 4.37114e-08, -0.000589721, 1, -2.57775e-11, -4.37114e-08, 0, 1, -834, 0.0415551, -55 )", + "index": 1429 + }, + "road__center2_road__lot__8__left__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__8__left__lot-small0", + "xform": "Transform( 0, 2.26819e-06, -1, 0, 1, 2.26819e-06, 1, 0, 0, -727, 0.000190735, -93 )", + "index": 1430 + }, + "road__center2_road__lot__8__right__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__8__right__lot-small0", + "xform": "Transform( 0, 2.26819e-06, -1, 0, 1, 2.26819e-06, 1, 0, 0, -727, 0.000190735, -27 )", + "index": 1431 + }, + "road__center2_road__lot__9__left__lot-small1": { "id": "lot-small1", "pattern_id": 0, "generated": true, @@ -47219,11 +45792,74 @@ 0, 23 ], - "key": "road__center2_road__lot__8__left__lot-small1", - "xform": "Transform( 0.20601, 8.09512e-08, 0.97855, -3.92947e-07, 1, -1.71763e-14, -0.97855, -3.84518e-07, 0.20601, -128.352, 9.81672e-05, -166.241 )", - "index": 1456 + "key": "road__center2_road__lot__9__left__lot-small1", + "xform": "Transform( 0, 5.08635e-07, -1, 0, 1, 5.08635e-07, 1, 0, 0, -660, 9.1553e-05, -96 )", + "index": 1432 }, - "road__center2_road__lot__8__right__lot-small1": { + "road__center2_road__lot__9__right__lot-small2": { + "id": "lot-small2", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__9__right__lot-small2", + "xform": "Transform( 0, 5.08635e-07, -1, 0, 1, 5.08635e-07, 1, 0, 0, -660, 9.1553e-05, 36 )", + "index": 1433 + }, + "road__center2_road__lot__10__left__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__10__left__lot-small0", + "xform": "Transform( 0, 6.63425e-07, -1, 0, 1, 6.63425e-07, 1, 0, 0, -584, 4.57764e-05, -93 )", + "index": 1434 + }, + "road__center2_road__lot__10__right__lot-small0": { + "id": "lot-small0", + "pattern_id": 0, + "generated": true, + "residents": [ + + ], + "workers": [ + + ], + "guests": [ + + ], + "worktime": [ + 0, + 23 + ], + "key": "road__center2_road__lot__10__right__lot-small0", + "xform": "Transform( 0, 6.63425e-07, -1, 0, 1, 6.63425e-07, 1, 0, 0, -584, 4.57764e-05, -27 )", + "index": 1435 + }, + "road__center2_road__lot__11__left__lot-small1": { "id": "lot-small1", "pattern_id": 0, "generated": true, @@ -47240,29 +45876,8 @@ 0, 23 ], - "key": "road__center2_road__lot__8__right__lot-small1", - "xform": "Transform( -0.20601, 8.09512e-08, -0.97855, 3.92947e-07, 1, -1.71763e-14, 0.97855, -3.84518e-07, -0.206011, -27.5772, 9.50236e-05, -153.2 )", - "index": 1457 - }, - "road__center2_road__lot__8__right__0__building-residental-house2": { - "id": "residental-house2", - "pattern_id": 0, - "generated": true, - "residents": [ - - ], - "workers": [ - - ], - "guests": [ - - ], - "worktime": [ - 0, - 23 - ], - "key": "road__center2_road__lot__8__right__0__building-residental-house2", - "xform": "Transform( -0.97855, 8.09512e-08, 0.206011, -3.43525e-14, 1, -3.92947e-07, -0.206011, -3.84518e-07, -0.97855, -17.5342, 9.26659e-05, -157.217 )", - "index": 1458 + "key": "road__center2_road__lot__11__left__lot-small1", + "xform": "Transform( 0, 0, -1, 0, 1, 0, 1, 0, 0, -511, 1.52588e-05, -96 )", + "index": 1436 } } \ No newline at end of file diff --git a/godot/astream/road/markings.material b/godot/astream/road/markings.material index 5122a5c..9db732d 100644 Binary files a/godot/astream/road/markings.material and b/godot/astream/road/markings.material differ diff --git a/godot/astream/road/road-lanes.bin b/godot/astream/road/road-lanes.bin index 8bd0bec..8d35bcd 100644 Binary files a/godot/astream/road/road-lanes.bin and b/godot/astream/road/road-lanes.bin differ diff --git a/godot/astream/road/road-lanes.gltf b/godot/astream/road/road-lanes.gltf index 2125188..5ef3c3d 100644 --- a/godot/astream/road/road-lanes.gltf +++ b/godot/astream/road/road-lanes.gltf @@ -16,7 +16,9 @@ 1, 2, 3, - 4 + 4, + 5, + 6 ] } ], @@ -47,27 +49,34 @@ "mesh":3, "name":"roadd-sidewalk_end", "translation":[ - 3.3000001907348633, + 4.8000006675720215, 0, 0 ] }, { "mesh":4, - "name":"roadd-sidewalk_start", - "rotation":[ - 0, - 0, - -1, - 0 - ], - "scale":[ - -1, - -1, - -1 - ], + "name":"road-lane-sidwalk-sideroad", "translation":[ - 4.55145263671875, + 6.099999904632568, + 0, + 0 + ] + }, + { + "mesh":5, + "name":"roadd-sidewalk_start", + "translation":[ + 3.500000238418579, + 0, + 0 + ] + }, + { + "mesh":6, + "name":"road-lane-lot", + "translation":[ + 8, 0, 0 ] @@ -78,9 +87,9 @@ "extensions":{ "KHR_materials_specular":{ "specularColorFactor":[ - 0.474271529955476, - 0.474271529955476, - 0.474271529955476 + 0.118567882488869, + 0.118567882488869, + 0.118567882488869 ] }, "KHR_materials_ior":{ @@ -92,7 +101,10 @@ "baseColorTexture":{ "index":0 }, - "metallicFactor":0.20000000298023224 + "metallicFactor":0.05000000074505806, + "metallicRoughnessTexture":{ + "index":1 + } } } ], @@ -140,7 +152,7 @@ ] }, { - "name":"road-sidewalk.001", + "name":"road-sidewalk-end", "primitives":[ { "attributes":{ @@ -154,7 +166,7 @@ ] }, { - "name":"road-sidewalk.006", + "name":"road-sidewalk-sideroad", "primitives":[ { "attributes":{ @@ -162,7 +174,36 @@ "NORMAL":17, "TEXCOORD_0":18 }, - "indices":15, + "indices":19, + "material":0 + } + ] + }, + { + "name":"road-sidewalk-start", + "primitives":[ + { + "attributes":{ + "POSITION":20, + "NORMAL":21, + "TEXCOORD_0":22 + }, + "indices":23, + "material":0 + } + ] + }, + { + "name":"road-lot", + "primitives":[ + { + "attributes":{ + "COLOR_0":24, + "POSITION":25, + "NORMAL":26, + "TEXCOORD_0":27 + }, + "indices":28, "material":0 } ] @@ -172,6 +213,10 @@ { "sampler":0, "source":0 + }, + { + "sampler":0, + "source":1 } ], "images":[ @@ -179,6 +224,11 @@ "mimeType":"image/png", "name":"road", "uri":"road.png" + }, + { + "mimeType":"image/png", + "name":"roughness", + "uri":"roughness.png" } ], "accessors":[ @@ -187,12 +237,12 @@ "componentType":5126, "count":32, "max":[ - -8.847564458847046e-09, - 0.12099996209144592, + 0, + 0.12867334485054016, 5.960464477539063e-08 ], "min":[ - -0.9999999403953552, + -1, -0.09999995678663254, -0.5 ], @@ -219,11 +269,11 @@ { "bufferView":4, "componentType":5126, - "count":74, + "count":76, "max":[ - 9.921204764395952e-07, - 0.1214386522769928, - -6.735790520906448e-07 + 1.0132789611816406e-06, + 0.12219604849815369, + -6.705522537231445e-07 ], "min":[ -0.9999990463256836, @@ -235,13 +285,13 @@ { "bufferView":5, "componentType":5126, - "count":74, + "count":76, "type":"VEC3" }, { "bufferView":6, "componentType":5126, - "count":74, + "count":76, "type":"VEC2" }, { @@ -253,9 +303,9 @@ { "bufferView":8, "componentType":5126, - "count":40, + "count":42, "max":[ - 2.5033950805664062e-05, + 0.0032810475677251816, 0.19999995827674866, 0 ], @@ -269,13 +319,13 @@ { "bufferView":9, "componentType":5126, - "count":40, + "count":42, "type":"VEC3" }, { "bufferView":10, "componentType":5126, - "count":40, + "count":42, "type":"VEC2" }, { @@ -287,64 +337,145 @@ { "bufferView":12, "componentType":5126, - "count":418, + "count":433, "max":[ - 0.00867057777941227, + 0.008670568466186523, 0.19999998807907104, - 0 + 2.6469779601696886e-23 ], "min":[ - -1.100000023841858, - -0.10000000149011612, - -0.5000007152557373 + -1.1999990940093994, + -0.10000000894069672, + -0.5 ], "type":"VEC3" }, { "bufferView":13, "componentType":5126, - "count":418, + "count":433, "type":"VEC3" }, { "bufferView":14, "componentType":5126, - "count":418, + "count":433, "type":"VEC2" }, { "bufferView":15, "componentType":5123, - "count":975, + "count":972, "type":"SCALAR" }, { "bufferView":16, "componentType":5126, - "count":418, + "count":29, "max":[ - 0.00867057777941227, - 0.19999998807907104, - 0.5 + 0.008670799434185028, + 0.12041480839252472, + 5.960464477539063e-08 ], "min":[ - -1.100000023841858, - -0.10000000149011612, - -7.152557373046875e-07 + -1.1999988555908203, + -0.09999999403953552, + -0.5 ], "type":"VEC3" }, { "bufferView":17, "componentType":5126, - "count":418, + "count":29, "type":"VEC3" }, { "bufferView":18, "componentType":5126, - "count":418, + "count":29, "type":"VEC2" + }, + { + "bufferView":19, + "componentType":5123, + "count":60, + "type":"SCALAR" + }, + { + "bufferView":20, + "componentType":5126, + "count":429, + "max":[ + 0.008670568466186523, + 0.19999998807907104, + 0 + ], + "min":[ + -1.1999990940093994, + -0.10000000894069672, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":21, + "componentType":5126, + "count":429, + "type":"VEC3" + }, + { + "bufferView":22, + "componentType":5126, + "count":429, + "type":"VEC2" + }, + { + "bufferView":23, + "componentType":5123, + "count":972, + "type":"SCALAR" + }, + { + "bufferView":24, + "componentType":5123, + "count":259, + "normalized":true, + "type":"VEC4" + }, + { + "bufferView":25, + "componentType":5126, + "count":259, + "max":[ + 4.4345855712890625e-05, + 0.11039861291646957, + 3.874301910400391e-06 + ], + "min":[ + -1.000115156173706, + -0.036179300397634506, + -0.45530906319618225 + ], + "type":"VEC3" + }, + { + "bufferView":26, + "componentType":5126, + "count":259, + "type":"VEC3" + }, + { + "bufferView":27, + "componentType":5126, + "count":259, + "type":"VEC2" + }, + { + "bufferView":28, + "componentType":5123, + "count":1101, + "type":"SCALAR" } ], "bufferViews":[ @@ -374,93 +505,153 @@ }, { "buffer":0, - "byteLength":888, + "byteLength":912, "byteOffset":1120, "target":34962 }, { "buffer":0, - "byteLength":888, - "byteOffset":2008, + "byteLength":912, + "byteOffset":2032, "target":34962 }, { "buffer":0, - "byteLength":592, - "byteOffset":2896, + "byteLength":608, + "byteOffset":2944, "target":34962 }, { "buffer":0, "byteLength":252, - "byteOffset":3488, + "byteOffset":3552, "target":34963 }, { "buffer":0, - "byteLength":480, - "byteOffset":3740, + "byteLength":504, + "byteOffset":3804, "target":34962 }, { "buffer":0, - "byteLength":480, - "byteOffset":4220, + "byteLength":504, + "byteOffset":4308, "target":34962 }, { "buffer":0, - "byteLength":320, - "byteOffset":4700, + "byteLength":336, + "byteOffset":4812, "target":34962 }, { "buffer":0, "byteLength":132, - "byteOffset":5020, + "byteOffset":5148, "target":34963 }, { "buffer":0, - "byteLength":5016, - "byteOffset":5152, + "byteLength":5196, + "byteOffset":5280, "target":34962 }, { "buffer":0, - "byteLength":5016, - "byteOffset":10168, + "byteLength":5196, + "byteOffset":10476, "target":34962 }, { "buffer":0, - "byteLength":3344, - "byteOffset":15184, + "byteLength":3464, + "byteOffset":15672, "target":34962 }, { "buffer":0, - "byteLength":1950, - "byteOffset":18528, + "byteLength":1944, + "byteOffset":19136, "target":34963 }, { "buffer":0, - "byteLength":5016, - "byteOffset":20480, + "byteLength":348, + "byteOffset":21080, "target":34962 }, { "buffer":0, - "byteLength":5016, - "byteOffset":25496, + "byteLength":348, + "byteOffset":21428, "target":34962 }, { "buffer":0, - "byteLength":3344, - "byteOffset":30512, + "byteLength":232, + "byteOffset":21776, "target":34962 + }, + { + "buffer":0, + "byteLength":120, + "byteOffset":22008, + "target":34963 + }, + { + "buffer":0, + "byteLength":5148, + "byteOffset":22128, + "target":34962 + }, + { + "buffer":0, + "byteLength":5148, + "byteOffset":27276, + "target":34962 + }, + { + "buffer":0, + "byteLength":3432, + "byteOffset":32424, + "target":34962 + }, + { + "buffer":0, + "byteLength":1944, + "byteOffset":35856, + "target":34963 + }, + { + "buffer":0, + "byteLength":2072, + "byteOffset":37800, + "target":34962 + }, + { + "buffer":0, + "byteLength":3108, + "byteOffset":39872, + "target":34962 + }, + { + "buffer":0, + "byteLength":3108, + "byteOffset":42980, + "target":34962 + }, + { + "buffer":0, + "byteLength":2072, + "byteOffset":46088, + "target":34962 + }, + { + "buffer":0, + "byteLength":2202, + "byteOffset":48160, + "target":34963 } ], "samplers":[ @@ -471,7 +662,7 @@ ], "buffers":[ { - "byteLength":33856, + "byteLength":50364, "uri":"road-lanes.bin" } ] diff --git a/godot/astream/road/road-lanes_road-lane-center.mesh b/godot/astream/road/road-lanes_road-lane-center.mesh index b6adc90..eeca8a1 100644 Binary files a/godot/astream/road/road-lanes_road-lane-center.mesh and b/godot/astream/road/road-lanes_road-lane-center.mesh differ diff --git a/godot/astream/road/road-lanes_road-lane-mid.mesh b/godot/astream/road/road-lanes_road-lane-mid.mesh index d39d1a0..2bd8141 100644 Binary files a/godot/astream/road/road-lanes_road-lane-mid.mesh and b/godot/astream/road/road-lanes_road-lane-mid.mesh differ diff --git a/godot/astream/road/road-lanes_road-lot.mesh b/godot/astream/road/road-lanes_road-lot.mesh new file mode 100644 index 0000000..96f3fe3 Binary files /dev/null and b/godot/astream/road/road-lanes_road-lot.mesh differ diff --git a/godot/astream/road/road-lanes_road-sidewalk-end.mesh b/godot/astream/road/road-lanes_road-sidewalk-end.mesh new file mode 100644 index 0000000..d0e79d5 Binary files /dev/null and b/godot/astream/road/road-lanes_road-sidewalk-end.mesh differ diff --git a/godot/astream/road/road-lanes_road-sidewalk-sideroad.mesh b/godot/astream/road/road-lanes_road-sidewalk-sideroad.mesh new file mode 100644 index 0000000..5ab00d9 Binary files /dev/null and b/godot/astream/road/road-lanes_road-sidewalk-sideroad.mesh differ diff --git a/godot/astream/road/road-lanes_road-sidewalk-start.mesh b/godot/astream/road/road-lanes_road-sidewalk-start.mesh new file mode 100644 index 0000000..65fca59 Binary files /dev/null and b/godot/astream/road/road-lanes_road-sidewalk-start.mesh differ diff --git a/godot/astream/road/road-lanes_road-sidewalk.mesh b/godot/astream/road/road-lanes_road-sidewalk.mesh index c6dcf1c..1e2f6dd 100644 Binary files a/godot/astream/road/road-lanes_road-sidewalk.mesh and b/godot/astream/road/road-lanes_road-sidewalk.mesh differ diff --git a/godot/astream/road/road-material.material b/godot/astream/road/road-material.material index ee57f6e..3fe110f 100644 Binary files a/godot/astream/road/road-material.material and b/godot/astream/road/road-material.material differ diff --git a/godot/astream/road/road.png b/godot/astream/road/road.png index 061d261..66ff980 100644 Binary files a/godot/astream/road/road.png and b/godot/astream/road/road.png differ diff --git a/godot/astream/road/road.png.import b/godot/astream/road/road.png.import index e0a91d3..900ff0b 100644 --- a/godot/astream/road/road.png.import +++ b/godot/astream/road/road.png.import @@ -2,28 +2,30 @@ importer="texture" type="StreamTexture" -path="res://.import/road.png-fffb0f4010c0e3e4e2d8a7ecd084e72d.stex" +path.s3tc="res://.import/road.png-fffb0f4010c0e3e4e2d8a7ecd084e72d.s3tc.stex" +path.etc2="res://.import/road.png-fffb0f4010c0e3e4e2d8a7ecd084e72d.etc2.stex" metadata={ -"vram_texture": false +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true } [deps] source_file="res://astream/road/road.png" -dest_files=[ "res://.import/road.png-fffb0f4010c0e3e4e2d8a7ecd084e72d.stex" ] +dest_files=[ "res://.import/road.png-fffb0f4010c0e3e4e2d8a7ecd084e72d.s3tc.stex", "res://.import/road.png-fffb0f4010c0e3e4e2d8a7ecd084e72d.etc2.stex" ] [params] -compress/mode=0 +compress/mode=2 compress/lossy_quality=0.7 compress/hdr_mode=0 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 +flags/repeat=true flags/filter=true -flags/mipmaps=false +flags/mipmaps=true flags/anisotropic=false -flags/srgb=2 +flags/srgb=1 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false @@ -31,5 +33,5 @@ process/invert_color=false process/normal_map_invert_y=false stream=false size_limit=0 -detect_3d=true +detect_3d=false svg/scale=1.0 diff --git a/godot/astream/road/roughness.png b/godot/astream/road/roughness.png new file mode 100644 index 0000000..2727c83 Binary files /dev/null and b/godot/astream/road/roughness.png differ diff --git a/godot/astream/road/roughness.png.import b/godot/astream/road/roughness.png.import new file mode 100644 index 0000000..1692c51 --- /dev/null +++ b/godot/astream/road/roughness.png.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="StreamTexture" +path.s3tc="res://.import/roughness.png-d2a962b97bf129a7543624215e5981e2.s3tc.stex" +path.etc2="res://.import/roughness.png-d2a962b97bf129a7543624215e5981e2.etc2.stex" +metadata={ +"imported_formats": [ "s3tc", "etc2" ], +"vram_texture": true +} + +[deps] + +source_file="res://astream/road/roughness.png" +dest_files=[ "res://.import/roughness.png-d2a962b97bf129a7543624215e5981e2.s3tc.stex", "res://.import/roughness.png-d2a962b97bf129a7543624215e5981e2.etc2.stex" ] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=true +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/godot/astream/road_lines.conf b/godot/astream/road_lines.conf new file mode 100644 index 0000000..e69de29 diff --git a/godot/astream/road_lines.json b/godot/astream/road_lines.json index 001cdfe..4f6e365 100644 --- a/godot/astream/road_lines.json +++ b/godot/astream/road_lines.json @@ -27,7 +27,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -47,7 +48,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -69,7 +71,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 48.392639, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -89,7 +92,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 30.538555, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -111,7 +115,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 66.580437, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -131,7 +136,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 49.748161, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -153,7 +159,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -173,7 +180,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -195,7 +203,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -215,7 +224,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -237,7 +247,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 15.280728, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -257,7 +268,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -279,7 +291,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -299,7 +312,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 25.935898, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -321,7 +335,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 49.213032, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -341,7 +356,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 55.017193, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -363,7 +379,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 47.159428, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -383,7 +400,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 79.320847, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -405,7 +423,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -425,7 +444,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -461,7 +481,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 67.128288, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -481,7 +502,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -503,7 +525,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 15.584929, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -523,7 +546,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 45.367867, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -566,6 +590,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -586,6 +611,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -608,6 +634,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -628,6 +655,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -650,6 +678,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -670,6 +699,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -692,6 +722,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -712,6 +743,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -734,6 +766,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -754,6 +787,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -776,6 +810,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -796,6 +831,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -818,6 +854,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -838,6 +875,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -860,6 +898,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -880,6 +919,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -915,6 +955,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -935,6 +976,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -974,6 +1016,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -994,6 +1037,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1016,6 +1060,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1036,6 +1081,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1058,6 +1104,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1078,6 +1125,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1100,6 +1148,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1120,6 +1169,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1142,6 +1192,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1162,6 +1213,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1197,6 +1249,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1217,6 +1270,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1256,6 +1310,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1276,6 +1331,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1298,6 +1354,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1318,6 +1375,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1340,6 +1398,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1360,6 +1419,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1382,6 +1442,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1402,6 +1463,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1424,6 +1486,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1444,6 +1507,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1483,6 +1547,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1503,6 +1568,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1525,6 +1591,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1545,6 +1612,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1567,6 +1635,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1587,6 +1656,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1609,6 +1679,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1629,6 +1700,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1651,6 +1723,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1671,6 +1744,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1717,7 +1791,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1737,7 +1812,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 58.852177, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1759,7 +1835,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 19.222448, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1779,7 +1856,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 6.935328, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1801,7 +1879,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 74.317871, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1821,7 +1900,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1843,7 +1923,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1863,7 +1944,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1885,7 +1967,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 69.47023, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1905,7 +1988,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 69.624931, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1927,7 +2011,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 77.405579, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1948,6 +2033,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 8.73645, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1969,7 +2055,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -1990,6 +2077,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 8.736217, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2011,7 +2099,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2032,6 +2121,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 21.701334, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2053,7 +2143,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 94.436913, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2073,7 +2164,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 7.952832, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2095,7 +2187,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2116,6 +2209,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 42.291325, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2137,7 +2231,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2158,6 +2253,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 9.529111, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2179,7 +2275,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2200,6 +2297,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 31, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2221,7 +2319,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2242,6 +2341,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 11, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2277,7 +2377,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2297,7 +2398,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2319,7 +2421,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2339,7 +2442,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 13.248075, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2376,7 +2480,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 13.79377, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2397,6 +2502,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 79.126663, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2418,7 +2524,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2439,6 +2546,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2460,7 +2568,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 25.829859, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2481,6 +2590,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 45.469803, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2516,6 +2626,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2536,6 +2647,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2571,6 +2683,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2591,6 +2704,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2630,6 +2744,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2650,6 +2765,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2672,6 +2788,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2692,6 +2809,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2714,6 +2832,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2734,6 +2853,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2756,6 +2876,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2776,6 +2897,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2798,6 +2920,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2818,6 +2941,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2853,6 +2977,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2873,6 +2998,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2912,6 +3038,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2932,6 +3059,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2954,6 +3082,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2974,6 +3103,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -2996,6 +3126,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3016,6 +3147,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3038,6 +3170,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3058,6 +3191,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3080,6 +3214,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3100,6 +3235,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3134,7 +3270,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 66.801376, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3154,7 +3291,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 84.478294, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3190,7 +3328,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 46, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3211,6 +3350,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 9.663863, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3232,7 +3372,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 52.253078, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3253,6 +3394,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 86.428551, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3288,7 +3430,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3308,7 +3451,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 88.613701, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3330,7 +3474,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3350,7 +3495,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3391,6 +3537,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3411,6 +3558,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3433,6 +3581,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3453,6 +3602,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3475,6 +3625,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3495,6 +3646,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3517,6 +3669,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3537,6 +3690,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3559,6 +3713,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3579,6 +3734,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3601,6 +3757,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3621,6 +3778,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3656,6 +3814,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3676,6 +3835,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3715,6 +3875,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3735,6 +3896,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3757,6 +3919,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3777,6 +3940,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3799,6 +3963,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3819,6 +3984,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3841,6 +4007,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3861,6 +4028,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3883,6 +4051,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3903,6 +4072,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3938,6 +4108,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3958,6 +4129,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -3995,6 +4167,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4015,6 +4188,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4037,6 +4211,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4057,6 +4232,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4079,6 +4255,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4099,6 +4276,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4134,6 +4312,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4154,6 +4333,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4192,7 +4372,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 58.483521, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4213,6 +4394,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 24.048702, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4234,7 +4416,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 16.103086, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4255,6 +4438,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 48.806374, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4276,7 +4460,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 18.609182, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4297,6 +4482,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 19.903353, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4318,7 +4504,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 49.714405, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4339,6 +4526,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 63.282619, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4360,7 +4548,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 55.933819, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4381,6 +4570,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 43.84436, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4417,7 +4607,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 0.120383, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4437,7 +4628,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4459,7 +4651,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4479,7 +4672,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4501,7 +4695,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 54.45422, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4521,7 +4716,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 42.439278, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4561,7 +4757,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4582,6 +4779,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 74.268272, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4603,7 +4801,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4624,6 +4823,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 80.475876, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4645,7 +4845,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4666,6 +4867,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 17.667665, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4687,7 +4889,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4708,6 +4911,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 20.278347, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4729,7 +4933,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 38.619808, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4750,6 +4955,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 74.593224, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4771,7 +4977,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4792,6 +4999,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 12.020815, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4827,7 +5035,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4848,6 +5057,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4869,7 +5079,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4890,6 +5101,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 63.330276, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4929,6 +5141,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4949,6 +5162,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4971,6 +5185,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -4991,6 +5206,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5013,6 +5229,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5033,6 +5250,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5055,6 +5273,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5075,6 +5294,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5097,6 +5317,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5117,6 +5338,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5152,6 +5374,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5172,6 +5395,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5209,6 +5433,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5229,6 +5454,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5251,6 +5477,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5271,6 +5498,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5293,6 +5521,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5313,6 +5542,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5352,6 +5582,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5372,6 +5603,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5394,6 +5626,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5414,6 +5647,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5436,6 +5670,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5456,6 +5691,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5478,6 +5714,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5498,6 +5735,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5520,6 +5758,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5540,6 +5779,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5579,6 +5819,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5599,6 +5840,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5621,6 +5863,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5641,6 +5884,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5663,6 +5907,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5683,6 +5928,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5705,6 +5951,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5725,6 +5972,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5747,6 +5995,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5767,6 +6016,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5802,7 +6052,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5822,7 +6073,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5844,7 +6096,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5864,7 +6117,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 39.544861, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5925,7 +6179,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 40.118187, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5946,6 +6201,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 36.505054, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5967,7 +6223,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -5988,6 +6245,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 20.778641, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6009,7 +6267,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6029,7 +6288,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 24.817156, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6051,7 +6311,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6072,6 +6333,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6093,7 +6355,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6113,7 +6376,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6135,7 +6399,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6156,6 +6421,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6177,7 +6443,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6198,6 +6465,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6219,7 +6487,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6239,7 +6508,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 34.085426, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6261,7 +6531,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6282,6 +6553,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 12.370844, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6303,7 +6575,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6324,6 +6597,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6345,7 +6619,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6366,6 +6641,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6387,7 +6663,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6407,7 +6684,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6429,7 +6707,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6450,6 +6729,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6471,7 +6751,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6491,7 +6772,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 41.932384, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6513,7 +6795,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6533,7 +6816,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 8.21562, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6555,7 +6839,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6576,6 +6861,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 22.622038, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6597,7 +6883,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6618,6 +6905,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 17.533735, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6639,7 +6927,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6660,6 +6949,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 37.933048, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6681,7 +6971,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6702,6 +6993,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 11.532695, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6723,7 +7015,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6744,6 +7037,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 89.981247, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6765,7 +7059,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6786,6 +7081,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 16.794804, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6807,7 +7103,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6828,6 +7125,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 34.250206, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6849,7 +7147,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6870,6 +7169,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 2.524976, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6891,7 +7191,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6912,6 +7213,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 6.937134, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6933,7 +7235,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 78.126228, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6954,6 +7257,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6975,7 +7279,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 30.325562, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -6996,6 +7301,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7017,7 +7323,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 2.833828, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7038,6 +7345,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 33.71999, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7078,7 +7386,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 50.093361, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7099,6 +7408,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7120,7 +7430,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 64.674889, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7141,6 +7452,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7162,7 +7474,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 9.313324, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7183,6 +7496,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 53.518856, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7204,7 +7518,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 52.596142, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7225,6 +7540,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7246,7 +7562,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7267,6 +7584,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 48.242287, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7288,7 +7606,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7309,6 +7628,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 71.062454, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7330,7 +7650,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 80.464371, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7350,7 +7671,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 69.611206, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7385,7 +7707,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 15.100328, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7405,7 +7728,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7447,6 +7771,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7467,6 +7792,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7489,6 +7815,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7509,6 +7836,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7531,6 +7859,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7551,6 +7880,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7573,6 +7903,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7593,6 +7924,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7615,6 +7947,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7635,6 +7968,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7657,6 +7991,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7677,6 +8012,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7699,6 +8035,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7719,6 +8056,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7754,6 +8092,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7774,6 +8113,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7812,6 +8152,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7832,6 +8173,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7854,6 +8196,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7874,6 +8217,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7896,6 +8240,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7916,6 +8261,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7938,6 +8284,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -7958,6 +8305,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8024,6 +8372,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8044,6 +8393,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8066,6 +8416,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8086,6 +8437,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8108,6 +8460,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8128,6 +8481,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8150,6 +8504,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8170,6 +8525,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8192,6 +8548,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8212,6 +8569,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8234,6 +8592,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8254,6 +8613,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8276,6 +8636,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8296,6 +8657,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8318,6 +8680,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8338,6 +8701,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8360,6 +8724,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8380,6 +8745,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8402,6 +8768,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8422,6 +8789,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8444,6 +8812,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8464,6 +8833,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8486,6 +8856,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8506,6 +8877,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8528,6 +8900,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8548,6 +8921,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8570,6 +8944,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8590,6 +8965,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8612,6 +8988,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8632,6 +9009,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8654,6 +9032,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8674,6 +9053,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8696,6 +9076,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8716,6 +9097,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8738,6 +9120,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8758,6 +9141,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8780,6 +9164,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8800,6 +9185,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8822,6 +9208,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8842,6 +9229,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8864,6 +9252,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8884,6 +9273,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8906,6 +9296,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8926,6 +9317,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8948,6 +9340,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8968,6 +9361,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -8990,6 +9384,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9010,6 +9405,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9032,6 +9428,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9052,6 +9449,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9074,6 +9472,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9094,6 +9493,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9116,6 +9516,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9136,6 +9537,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9158,6 +9560,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9178,6 +9581,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9200,6 +9604,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9220,6 +9625,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9242,6 +9648,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9262,6 +9669,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9284,6 +9692,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9304,6 +9713,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9326,6 +9736,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9346,6 +9757,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9393,7 +9805,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 92.215912, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9413,7 +9826,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 85.488586, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9435,7 +9849,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9455,7 +9870,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 52.452927, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9477,7 +9893,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 2.019254, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9497,7 +9914,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9519,7 +9937,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9539,7 +9958,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9561,7 +9981,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9581,7 +10002,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9603,7 +10025,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 25.142513, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9623,7 +10046,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9645,7 +10069,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 48.061348, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9665,7 +10090,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9687,7 +10113,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 45.071342, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9707,7 +10134,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9729,7 +10157,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 46.263199, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9749,7 +10178,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 31.692425, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9771,7 +10201,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9791,7 +10222,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 27.928473, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9813,7 +10245,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9833,7 +10266,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 8.795603, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9855,7 +10289,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 29.404163, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9875,7 +10310,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 79.938606, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9897,7 +10333,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9917,7 +10354,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 32.696121, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9939,7 +10377,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9959,7 +10398,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 12.082368, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -9979,9 +10419,10 @@ "points": [ "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1104, 0.000259399, -240 )", "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1114, 0.000183105, -166 )", - "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1122, 0.000144958, -98 )", - "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1125, -0.293396, -60 )", - "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1064, 0.000350952, -60 )", + "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1120, 0.000198364, -112 )", + "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1102, 0.000473022, -78 )", + "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1064, 0.000457764, -60 )", + "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1028, 0.000106812, -62 )", "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -994, 0.000289917, -60 )", "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -910, 0.000205994, -60 )", "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -835, 0.0421448, -60 )", @@ -10004,8 +10445,8 @@ "left": { "transit_stop_count": 1, "transit_stop_type": "bus-stop", - "transit_stop_offset": 6, - "transit_stop_dir_offset": 50, + "transit_stop_offset": 5, + "transit_stop_dir_offset": 48, "transit_stop_y_rotation": 90, "sideroad": 0, "sideroad_offset": 0, @@ -10014,10 +10455,11 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 33.080364, + "lot_offset": 33, "lot_dir_offset": 37.336308, "lot_y_offset": 0, - "lot_y_rotation": -90, + "lot_y_rotation": 0, "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" }, @@ -10034,10 +10476,11 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 30.830847, + "lot_offset": 33, "lot_dir_offset": 37.336308, "lot_y_offset": 0, - "lot_y_rotation": 90, + "lot_y_rotation": 0, "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" } @@ -10056,9 +10499,10 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 27, - "lot_dir_offset": 0.5, - "lot_y_offset": 0, + "lot_depth": 55.193535, + "lot_offset": 33, + "lot_dir_offset": 34.234486, + "lot_y_offset": 0.1, "lot_y_rotation": 0, "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" @@ -10076,10 +10520,11 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 35, - "lot_dir_offset": 0, + "lot_depth": 100, + "lot_offset": 33, + "lot_dir_offset": 34.234486, "lot_y_offset": 0.1, - "lot_y_rotation": 90, + "lot_y_rotation": 0, "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" } @@ -10098,36 +10543,15 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 5, - "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "Null", - "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 48.897701, + "lot_offset": 33, "lot_dir_offset": 19.059683, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" - } - }, - { - "left": { + }, + "right": { "transit_stop_count": 0, "transit_stop_type": "", "transit_stop_offset": 0, @@ -10139,32 +10563,13 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, - "lot_offset": 0, - "lot_dir_offset": 0, + "lot": 1, + "lot_depth": 100, + "lot_offset": 33, + "lot_dir_offset": 19.059683, "lot_y_offset": 0, "lot_y_rotation": 0, - "lot_type": "Null", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "Null", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 30.500353, - "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" } }, @@ -10182,11 +10587,56 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 51.292362, + "lot_offset": 196, + "lot_dir_offset": 29, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "large2", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "Null", + "lot": 1, + "lot_depth": 100, + "lot_offset": 196, + "lot_dir_offset": 29, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "large2", + "lot_buildings": ":0, 0, 0:0" + } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "Null", + "lot": 1, + "lot_depth": 55.504234, + "lot_offset": 33, "lot_dir_offset": 35, "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10202,11 +10652,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 100, + "lot_offset": 33, "lot_dir_offset": 35, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" } }, @@ -10223,12 +10674,13 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, - "lot_offset": 33.799999, + "lot": 1, + "lot_depth": 100, + "lot_offset": 33, "lot_dir_offset": 42, "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10243,37 +10695,18 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, - "lot_offset": 33.799999, + "lot": 1, + "lot_depth": 100, + "lot_offset": 33, "lot_dir_offset": 42, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" } }, { "left": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 1, - "sideroad_offset": 18.799999, - "sideroad_dir_offset": 17, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 90, - "sideroad_type": "short1", - "lot": 1, - "lot_offset": 55, - "lot_dir_offset": 20, - "lot_y_offset": 0, - "lot_y_rotation": 106, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { "transit_stop_count": 0, "transit_stop_type": "", "transit_stop_offset": 0, @@ -10286,11 +10719,33 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 100, + "lot_offset": 33, "lot_dir_offset": 37.500008, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "Null", + "lot": 1, + "lot_depth": 100, + "lot_offset": 33, + "lot_dir_offset": 37.500008, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" } }, @@ -10300,19 +10755,20 @@ "transit_stop_type": "bus-stop", "transit_stop_offset": 5, "transit_stop_dir_offset": 1, - "transit_stop_y_rotation": -90, - "sideroad": 1, - "sideroad_offset": 18.5, - "sideroad_dir_offset": 23, + "transit_stop_y_rotation": 90, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, "sideroad_y_offset": 0, - "sideroad_y_rotation": 90, - "sideroad_type": "short1", - "lot": 0, - "lot_offset": 54, - "lot_dir_offset": 23, + "sideroad_y_rotation": 0, + "sideroad_type": "Null", + "lot": 1, + "lot_depth": 100, + "lot_offset": 96, + "lot_dir_offset": 35.500008, "lot_y_offset": 0, - "lot_y_rotation": 100, - "lot_type": "", + "lot_y_rotation": 0, + "lot_type": "small2", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10328,12 +10784,13 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 36.799999, - "lot_dir_offset": 30, + "lot_depth": 100, + "lot_offset": 96, + "lot_dir_offset": 35.500008, "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", - "lot_buildings": "residental-house1:-4.5, 0, 0:-90" + "lot_y_rotation": 0, + "lot_type": "small2", + "lot_buildings": ":0, 0, 0:0" } }, { @@ -10350,11 +10807,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 36.799999, - "lot_dir_offset": 22, + "lot_depth": 18.90004, + "lot_offset": 33, + "lot_dir_offset": 37, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10370,12 +10828,13 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 1, - "lot_offset": 36.799999, - "lot_dir_offset": 30, + "lot_depth": 100, + "lot_offset": 33, + "lot_dir_offset": 37, "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", - "lot_buildings": "residental-house2:-6, 0, -9:-90" + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" } }, { @@ -10386,59 +10845,18 @@ "transit_stop_dir_offset": 0, "transit_stop_y_rotation": 0, "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "Null", - "lot": 1, - "lot_offset": 36.799999, - "lot_dir_offset": 10, - "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 1, "sideroad_offset": 18.799999, "sideroad_dir_offset": 25, "sideroad_y_offset": 0, "sideroad_y_rotation": -90, "sideroad_type": "short1", "lot": 1, - "lot_offset": 50, - "lot_dir_offset": 40, + "lot_depth": 62.702347, + "lot_offset": 96, + "lot_dir_offset": 30, "lot_y_offset": 0, - "lot_y_rotation": -80, - "lot_type": "small1", - "lot_buildings": "residental-house3:-5, 0, -15:-90" - } - }, - { - "left": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 46, - "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small2", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10448,17 +10866,18 @@ "transit_stop_dir_offset": 0, "transit_stop_y_rotation": 0, "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, + "sideroad_offset": 18.799999, + "sideroad_dir_offset": 25, "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", + "sideroad_y_rotation": -90, + "sideroad_type": "short1", "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 46, + "lot_depth": 100, + "lot_offset": 96, + "lot_dir_offset": 30, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small2", "lot_buildings": ":0, 0, 0:0" } }, @@ -10476,11 +10895,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 20, + "lot_depth": 100, + "lot_offset": 33, + "lot_dir_offset": 46, "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10496,11 +10916,56 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 100, + "lot_offset": 33, + "lot_dir_offset": 46, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 100, + "lot_offset": 96, "lot_dir_offset": 71, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "large1", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 100, + "lot_offset": 96, + "lot_dir_offset": 71, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "large1", "lot_buildings": ":0, 0, 0:0" } }, @@ -10518,11 +10983,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 20.444458, + "lot_offset": 24.799999, "lot_dir_offset": 33.000011, "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small-m0", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10538,11 +11004,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 100, + "lot_offset": 24.799999, "lot_dir_offset": 33.000011, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small-m0", "lot_buildings": ":0, 0, 0:0" } }, @@ -10560,53 +11027,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 40, - "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, + "lot_depth": 31.253525, + "lot_offset": 96, "lot_dir_offset": 27.000015, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - } - }, - { - "left": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 29.017237, - "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small2", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10622,11 +11048,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 29.017237, + "lot_depth": 100, + "lot_offset": 96, + "lot_dir_offset": 27.000015, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small2", "lot_buildings": ":0, 0, 0:0" } }, @@ -10644,11 +11071,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 56.519913, + "lot_depth": 13.134666, + "lot_offset": 33, + "lot_dir_offset": 29.017237, "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" }, "right": { @@ -10664,11 +11092,12 @@ "sideroad_y_rotation": 0, "sideroad_type": "", "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 56.519913, + "lot_depth": 100, + "lot_offset": 33, + "lot_dir_offset": 29.017237, "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", + "lot_y_rotation": 0, + "lot_type": "small0", "lot_buildings": ":0, 0, 0:0" } }, @@ -10685,11 +11114,232 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "", - "lot": 0, - "lot_offset": 33.799999, + "lot": 1, + "lot_depth": 62.094559, + "lot_offset": 96, + "lot_dir_offset": 56.519913, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 100, + "lot_offset": 96, + "lot_dir_offset": 56.519913, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 100, + "lot_offset": 60, "lot_dir_offset": 19.30028, "lot_y_offset": 0, - "lot_y_rotation": -90, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 100, + "lot_offset": 60, + "lot_dir_offset": 19.30028, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 16.169056, + "lot_offset": 33, + "lot_dir_offset": 21.84033, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 73.936424, + "lot_offset": 33, + "lot_dir_offset": 21.84033, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 65.317337, + "lot_offset": 33, + "lot_dir_offset": 19.416489, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 62.672035, + "lot_offset": 33, + "lot_dir_offset": 19.416489, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 33.92065, + "lot_offset": 33, + "lot_dir_offset": 34.713108, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 68.541595, + "lot_offset": 33, + "lot_dir_offset": 34.713108, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "small0", + "lot_buildings": ":0, 0, 0:0" + } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 38.008312, + "lot_offset": 0, + "lot_dir_offset": 0, + "lot_y_offset": 0, + "lot_y_rotation": 0, "lot_type": "", "lot_buildings": ":0, 0, 0:0" }, @@ -10705,140 +11355,15 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "", - "lot": 0, - "lot_offset": 33.799999, - "lot_dir_offset": 19.30028, + "lot": 1, + "lot_depth": 33.102703, + "lot_offset": 0, + "lot_dir_offset": 0, "lot_y_offset": 0, - "lot_y_rotation": 90, + "lot_y_rotation": 0, "lot_type": "", "lot_buildings": ":0, 0, 0:0" } - }, - { - "left": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 21.84033, - "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 21.84033, - "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - } - }, - { - "left": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 19.416489, - "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 19.416489, - "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - } - }, - { - "left": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 34.713108, - "lot_y_offset": 0, - "lot_y_rotation": -90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - }, - "right": { - "transit_stop_count": 0, - "transit_stop_type": "", - "transit_stop_offset": 0, - "transit_stop_dir_offset": 0, - "transit_stop_y_rotation": 0, - "sideroad": 0, - "sideroad_offset": 0, - "sideroad_dir_offset": 0, - "sideroad_y_offset": 0, - "sideroad_y_rotation": 0, - "sideroad_type": "", - "lot": 1, - "lot_offset": 33.799999, - "lot_dir_offset": 34.713108, - "lot_y_offset": 0, - "lot_y_rotation": 90, - "lot_type": "small1", - "lot_buildings": ":0, 0, 0:0" - } } ], "metadata": { @@ -10866,7 +11391,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -10887,6 +11413,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 73.214561, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -10923,6 +11450,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -10943,6 +11471,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -10965,6 +11494,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -10985,6 +11515,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11020,6 +11551,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11040,6 +11572,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11108,6 +11641,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11128,6 +11662,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11150,6 +11685,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11170,6 +11706,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11192,6 +11729,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11212,6 +11750,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11234,6 +11773,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11254,6 +11794,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11276,6 +11817,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11296,6 +11838,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11318,6 +11861,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11338,6 +11882,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11360,6 +11905,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11380,6 +11926,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11402,6 +11949,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11422,6 +11970,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11444,6 +11993,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11464,6 +12014,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11486,6 +12037,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11506,6 +12058,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11528,6 +12081,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11548,6 +12102,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11570,6 +12125,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11590,6 +12146,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11612,6 +12169,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11632,6 +12190,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11654,6 +12213,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11674,6 +12234,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11696,6 +12257,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11716,6 +12278,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11738,6 +12301,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11758,6 +12322,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11780,6 +12345,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11800,6 +12366,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11822,6 +12389,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11842,6 +12410,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11864,6 +12433,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11884,6 +12454,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11906,6 +12477,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11926,6 +12498,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11948,6 +12521,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11968,6 +12542,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -11990,6 +12565,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12010,6 +12586,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12032,6 +12609,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12052,6 +12630,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12074,6 +12653,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12094,6 +12674,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12116,6 +12697,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12136,6 +12718,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12158,6 +12741,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12178,6 +12762,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12200,6 +12785,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12220,6 +12806,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12242,6 +12829,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12262,6 +12850,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12284,6 +12873,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12304,6 +12894,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12326,6 +12917,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12346,6 +12938,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12368,6 +12961,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12388,6 +12982,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12410,6 +13005,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12430,6 +13026,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12452,6 +13049,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12472,6 +13070,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12494,6 +13093,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12514,6 +13114,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12553,6 +13154,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12573,6 +13175,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12595,6 +13198,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12615,6 +13219,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12637,6 +13242,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12657,6 +13263,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12679,6 +13286,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12699,6 +13307,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12721,6 +13330,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12741,6 +13351,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12775,7 +13386,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12795,7 +13407,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 46.354351, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12838,6 +13451,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12858,6 +13472,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12880,6 +13495,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12900,6 +13516,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12922,6 +13539,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12942,6 +13560,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12964,6 +13583,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -12984,6 +13604,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13006,6 +13627,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13026,6 +13648,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13048,6 +13671,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13068,6 +13692,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13090,6 +13715,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13110,6 +13736,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13132,6 +13759,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13152,6 +13780,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13187,6 +13816,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13207,6 +13837,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13226,6 +13857,7 @@ "points": [ "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -330, 0.0576782, -60 )", "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -295, 0.0375366, -240 )", + "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -240, 0.000259399, -238 )", "Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -180, 0.0252991, -240 )" ], "edges": [ @@ -13242,7 +13874,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 40.413586, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13262,7 +13895,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 0.688136, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13284,7 +13918,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13304,7 +13939,8 @@ "sideroad_y_offset": 0, "sideroad_y_rotation": 0, "sideroad_type": "Null", - "lot": 0, + "lot": 1, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13312,6 +13948,50 @@ "lot_type": "Null", "lot_buildings": ":0, 0, 0:0" } + }, + { + "left": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 100, + "lot_offset": 0, + "lot_dir_offset": 0, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "", + "lot_buildings": ":0, 0, 0:0" + }, + "right": { + "transit_stop_count": 0, + "transit_stop_type": "", + "transit_stop_offset": 0, + "transit_stop_dir_offset": 0, + "transit_stop_y_rotation": 0, + "sideroad": 0, + "sideroad_offset": 0, + "sideroad_dir_offset": 0, + "sideroad_y_offset": 0, + "sideroad_y_rotation": 0, + "sideroad_type": "", + "lot": 1, + "lot_depth": 100, + "lot_offset": 0, + "lot_dir_offset": 0, + "lot_y_offset": 0, + "lot_y_rotation": 0, + "lot_type": "", + "lot_buildings": ":0, 0, 0:0" + } } ], "metadata": { @@ -13340,6 +14020,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13360,6 +14041,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13395,6 +14077,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13415,6 +14098,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13453,6 +14137,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13473,6 +14158,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13495,6 +14181,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13515,6 +14202,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13537,6 +14225,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13557,6 +14246,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13579,6 +14269,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13599,6 +14290,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13634,6 +14326,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13654,6 +14347,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13691,6 +14385,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13711,6 +14406,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13733,6 +14429,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13753,6 +14450,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13775,6 +14473,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13795,6 +14494,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13830,6 +14530,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13850,6 +14551,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13892,6 +14594,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13912,6 +14615,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13934,6 +14638,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13954,6 +14659,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13976,6 +14682,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -13996,6 +14703,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14018,6 +14726,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14038,6 +14747,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14060,6 +14770,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14080,6 +14791,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14102,6 +14814,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14122,6 +14835,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14144,6 +14858,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14164,6 +14879,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14186,6 +14902,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14206,6 +14923,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14242,6 +14960,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14262,6 +14981,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14284,6 +15004,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14304,6 +15025,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14340,6 +15062,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14360,6 +15083,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14382,6 +15106,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, @@ -14402,6 +15127,7 @@ "sideroad_y_rotation": 0, "sideroad_type": "Null", "lot": 0, + "lot_depth": 100, "lot_offset": 0, "lot_dir_offset": 0, "lot_y_offset": 0, diff --git a/godot/config/stream.conf b/godot/config/stream.conf index 137d78b..b4be139 100644 --- a/godot/config/stream.conf +++ b/godot/config/stream.conf @@ -57,6 +57,10 @@ road_lines_path = "res://astream/road_lines.json" center_mesh = "res://astream/road/road-lanes_road-lane-center.mesh" mid_mesh = "res://astream/road/road-lanes_road-lane-mid.mesh" sidewalk_mesh = "res://astream/road/road-lanes_road-sidewalk.mesh" +sidewalk_start_mesh = "res://astream/road/road-lanes_road-sidewalk-start.mesh" +sidewalk_end_mesh = "res://astream/road/road-lanes_road-sidewalk-end.mesh" +sidewalk_sideroad_mesh = "res://astream/road/road-lanes_road-sidewalk-sideroad.mesh" +lot_mesh = "res://astream/road/road-lanes_road-lot.mesh" [lines] road_lines_path = "res://astream/road_lines.json" gen_prefixes = ["empty", "foundation30", "foundation60", "sideroad-start", diff --git a/src/flecs b/src/flecs index 41a14e2..2c72008 160000 --- a/src/flecs +++ b/src/flecs @@ -1 +1 @@ -Subproject commit 41a14e2dd41c2ff2092cc8512ab1a35f93f6d9fd +Subproject commit 2c72008fecc736be8778ea4f171a96519987f0dc diff --git a/src/godot b/src/godot index 56d8204..9ce78ca 160000 --- a/src/godot +++ b/src/godot @@ -1 +1 @@ -Subproject commit 56d82044702465912ced016654d203587cabe084 +Subproject commit 9ce78ca5c2ec6d6a6e32da300f6694d496a26f32 diff --git a/src/meshoptimizer b/src/meshoptimizer index 331f1ce..160f94b 160000 --- a/src/meshoptimizer +++ b/src/meshoptimizer @@ -1 +1 @@ -Subproject commit 331f1cebfa08bfcb06521ea587336a870a04955a +Subproject commit 160f94ba910f7f07f37edd8dab17899bc6466b26 diff --git a/src/modules/stream/SCsub b/src/modules/stream/SCsub index 2532e92..fa2c8f8 100644 --- a/src/modules/stream/SCsub +++ b/src/modules/stream/SCsub @@ -10,7 +10,6 @@ env_stream.module_obj = [] env_stream.Prepend(CPPPATH=["../../meshoptimizer/src"]) env_stream.Prepend(CPPPATH=["event"]) env_stream.add_source_files(env_stream.module_obj, "*.cpp") -env_stream.add_source_files(env_stream.module_obj, "flecs/*.c") env.modules_sources += env_stream.module_obj SConscript("buildings/SCsub") @@ -18,6 +17,7 @@ SConscript("rtree/SCsub") SConscript("ui/SCsub") SConscript("npc/SCsub") SConscript("event/SCsub") +SConscript("flecs/SCsub") diff --git a/src/modules/stream/buildings_data.cpp b/src/modules/stream/buildings_data.cpp index 8015234..e0a6826 100644 --- a/src/modules/stream/buildings_data.cpp +++ b/src/modules/stream/buildings_data.cpp @@ -181,7 +181,7 @@ void BuildingsData::read_buildings_json(const String &buildings_path) while (e) { struct building b; String key = e->get(); - if (!key.begins_with("road::")) { + if (!key.begins_with("road::") && !key.begins_with("road__")) { Dictionary entry = json[key]; String id = entry.get("id", "empty"); if (id == "empty") { @@ -216,7 +216,7 @@ void BuildingsData::save_buildings_json(const String &buildings_path) ecs().each([&index, &json](const CBuildingData &b) { String key = b.building.key; /* do not save roadside generated stuff */ - if (!key.begins_with("road::")) { + if (!key.begins_with("road::") && !key.begins_with("road__")) { Dictionary dict = b.building.to_dict(); dict["index"] = index; json[key] = dict; @@ -712,7 +712,6 @@ const struct BuildingsData::building & BuildingsData::get_building(const String &building_key) const { String ename = "base:" + building_key; - print_line("get_building: " + ename); flecs::entity e = lookup(ename); assert(e.is_valid()); return e.get()->building; @@ -722,7 +721,6 @@ struct BuildingsData::building & BuildingsData::get_building(const String &building_key) { String ename = "base:" + building_key; - print_line("get_building: " + ename); flecs::entity e = lookup(ename); assert(e.is_valid()); return e.get_mut()->building; diff --git a/src/modules/stream/event/SCsub b/src/modules/stream/event/SCsub new file mode 100644 index 0000000..f30bff6 --- /dev/null +++ b/src/modules/stream/event/SCsub @@ -0,0 +1,12 @@ +Import("env") +Import("env_modules") + +env_stream = env_modules.Clone() +env_stream.stream_building_sources = [] + +env_stream.add_source_files(env_stream.stream_building_sources, "*.cpp") + +lib = env_stream.add_library("event", env_stream.stream_building_sources) +env.Append(LIBS=[lib]) +env_stream.Prepend(CPPPATH=[".."]) +env_stream.Prepend(CPPPATH=["../../../meshoptimizer/src"]) diff --git a/src/modules/stream/event/editor_event.cpp b/src/modules/stream/event/editor_event.cpp new file mode 100644 index 0000000..dc09e58 --- /dev/null +++ b/src/modules/stream/event/editor_event.cpp @@ -0,0 +1,32 @@ +#undef NDEBUG +#include + +#include "editor_event.h" + +EditorEvent *EditorEvent::singleton = nullptr; + +EditorEvent::EditorEvent() +{ +} + +EditorEvent::~EditorEvent() +{ +} + +EditorEvent *EditorEvent::get_singleton() +{ + if (!singleton) + singleton = memnew(EditorEvent); + return singleton; +} + +void EditorEvent::EventHelper::emit(const String &event, + const Vector &args) +{ + auto evl = listeners.begin(); + while (evl != listeners.end()) { + const event_listener_ptrs &xev = *evl; + xev.execute(event, args); + evl++; + } +} \ No newline at end of file diff --git a/src/modules/stream/event/editor_event.h b/src/modules/stream/event/editor_event.h new file mode 100644 index 0000000..7f23391 --- /dev/null +++ b/src/modules/stream/event/editor_event.h @@ -0,0 +1,81 @@ +#ifndef EDITOR_EVENT_H +#define EDITOR_EVENT_H +#include +#include +class EditorEvent { +public: + class EventHelper { + class event_listener_ptrs { + public: + class H {}; + H *obj; + void (H::*method)(const String &event, + const Vector &args); + void execute(const String &event, + const Vector &args) const + { + (obj->*method)(event, args); + } + }; + std::list listeners; + typedef event_listener_ptrs::H *obj_t; + typedef void (event_listener_ptrs::H::*method_t)( + const String &event, const Vector &args); + + public: + template + void + add_listener(T *obj, + void (T::*method)(const String &event, + const Vector &args)); + template + void + remove_listener(T *obj, + void (T::*method)(const String &event, + const Vector &args)); + void emit(const String &event, const Vector &args); + }; + EventHelper event; + +private: + static EditorEvent *singleton; + EditorEvent(); + virtual ~EditorEvent(); + +public: + static EditorEvent *get_singleton(); +}; +template +void EditorEvent::EventHelper::remove_listener( + T *obj, + void (T::*method)(const String &event, const Vector &args)) +{ + listeners.remove_if([obj, method](const event_listener_ptrs &e) { + return e.obj == reinterpret_cast(obj) && + e.method == reinterpret_cast(method); + }); +} +template +void EditorEvent::EventHelper::add_listener( + T *obj, + void (T::*method)(const String &event, const Vector &args)) +{ + auto evl = listeners.begin(); + bool bad = false; + while (evl != listeners.end()) { + const event_listener_ptrs &xev = *evl; + if (xev.obj == reinterpret_cast(obj) && + xev.method == reinterpret_cast(method)) { + bad = true; + break; + } + evl++; + } + if (bad) + return; + event_listener_ptrs ev; + ev.obj = reinterpret_cast(obj); + ev.method = reinterpret_cast(method); + listeners.push_back(ev); +} +#endif \ No newline at end of file diff --git a/src/modules/stream/event/game_event.cpp b/src/modules/stream/event/game_event.cpp new file mode 100644 index 0000000..3267ba3 --- /dev/null +++ b/src/modules/stream/event/game_event.cpp @@ -0,0 +1,31 @@ +#undef NDEBUG +#include + +#include "game_event.h" +GameEvent *GameEvent::singleton = nullptr; + +GameEvent::GameEvent() +{ +} + +GameEvent::~GameEvent() +{ +} + +GameEvent *GameEvent::get_singleton() +{ + if (!singleton) + singleton = memnew(GameEvent); + return singleton; +} + +void GameEvent::EventHelper::emit(const String &event, + const Vector &args) +{ + auto evl = listeners.begin(); + while (evl != listeners.end()) { + const event_listener_ptrs &xev = *evl; + xev.execute(event, args); + evl++; + } +} \ No newline at end of file diff --git a/src/modules/stream/event/game_event.h b/src/modules/stream/event/game_event.h new file mode 100644 index 0000000..88ae239 --- /dev/null +++ b/src/modules/stream/event/game_event.h @@ -0,0 +1,83 @@ +/* ~/godot-projects/streaming_world/src/modules/stream/game_event.h */ +#ifndef GAME_EVENT_H_ +#define GAME_EVENT_H_ +#include +#include +class GameEvent { +public: + class EventHelper { + class event_listener_ptrs { + public: + class H {}; + H *obj; + void (H::*method)(const String &event, + const Vector &args); + void execute(const String &event, + const Vector &args) const + { + (obj->*method)(event, args); + } + }; + std::list listeners; + typedef event_listener_ptrs::H *obj_t; + typedef void (event_listener_ptrs::H::*method_t)( + const String &event, const Vector &args); + + public: + template + void + add_listener(T *obj, + void (T::*method)(const String &event, + const Vector &args)); + template + void + remove_listener(T *obj, + void (T::*method)(const String &event, + const Vector &args)); + void emit(const String &event, const Vector &args); + }; + EventHelper event; + +private: + static GameEvent *singleton; + GameEvent(); + virtual ~GameEvent(); + +public: + static GameEvent *get_singleton(); +}; +template +void GameEvent::EventHelper::remove_listener( + T *obj, + void (T::*method)(const String &event, const Vector &args)) +{ + listeners.remove_if([obj, method](const event_listener_ptrs &e) { + return e.obj == reinterpret_cast(obj) && + e.method == reinterpret_cast(method); + }); +} +template +void GameEvent::EventHelper::add_listener( + T *obj, + void (T::*method)(const String &event, const Vector &args)) +{ + auto evl = listeners.begin(); + bool bad = false; + while (evl != listeners.end()) { + const event_listener_ptrs &xev = *evl; + if (xev.obj == reinterpret_cast(obj) && + xev.method == reinterpret_cast(method)) { + bad = true; + break; + } + evl++; + } + if (bad) + return; + event_listener_ptrs ev; + ev.obj = reinterpret_cast(obj); + ev.method = reinterpret_cast(method); + listeners.push_back(ev); +} + +#endif // GAME_EVENT_H_ diff --git a/src/modules/stream/road_lines_data.cpp b/src/modules/stream/road_lines_data.cpp index cb6e228..4ad10b5 100644 --- a/src/modules/stream/road_lines_data.cpp +++ b/src/modules/stream/road_lines_data.cpp @@ -78,12 +78,86 @@ public: const struct CLine *cl = e.get(); return &cl->line; } - inline struct RoadLinesData::road_line &get_line(const String &key) + inline const struct RoadLinesData::road_edge & + get_line_edge(const String &key, int edge) const + { + flecs::entity e = lookup(key); + const struct CLine *cl = e.get(); + return cl->line.edges[edge]; + } + void set_line_edge(const String &key, int edge_id, + const struct RoadLinesData::road_edge &edge) { flecs::entity e = lookup(key); struct CLine *cl = e.get_mut(); + cl->line.edges[edge_id] = edge; + e.modified(); + } + inline int get_line_edge_count(const String &key) const + { + flecs::entity e = lookup(key); + const struct CLine *cl = e.get(); + return cl->line.edges.size(); + } + void + set_line_edge_left(const String &key, int edge_id, + const struct RoadLinesData::road_edge_side &side) + { + // print_line("set_line_edge_left: " + key + " " + itos(edge_id) + + // " lot: " + itos(side.lot)); + flecs::entity e = lookup(key); + struct CLine *cl = e.get_mut(); + cl->line.edges[edge_id].left = side; + e.modified(); + cl = e.get_mut(); + assert(cl->line.edges[edge_id].left.lot == side.lot); + } + void + set_line_edge_right(const String &key, int edge_id, + const struct RoadLinesData::road_edge_side &side) + { + // print_line("set_line_edge_right: " + key + " " + itos(edge_id) + + // " lot: " + itos(side.lot)); + flecs::entity e = lookup(key); + struct CLine *cl = e.get_mut(); + cl->line.edges[edge_id].right = side; + e.modified(); + cl = e.get_mut(); + assert(cl->line.edges[edge_id].right.lot == side.lot); + } + struct RoadLinesData::road_edge_side + get_line_edge_left(const String &key, int edge_id) const + { + flecs::entity e = lookup(key); + const struct CLine *cl = e.get(); + return cl->line.edges[edge_id].left; + } + struct RoadLinesData::road_edge_side + get_line_edge_right(const String &key, int edge_id) const + { + flecs::entity e = lookup(key); + const struct CLine *cl = e.get(); + return cl->line.edges[edge_id].right; + } + inline struct RoadLinesData::road_line get_line(const String &key) + { + flecs::entity e = lookup(key); + const struct CLine *cl = e.get(); return cl->line; } + inline const Transform &get_line_point_transform(const String &key, + int point_index) + { + flecs::entity e = lookup(key); + const struct CLine *cl = e.get(); + return cl->line.points[point_index]; + } + inline const Vector3 &get_line_point(const String &key, int point_index) + { + flecs::entity e = lookup(key); + const struct CLine *cl = e.get(); + return cl->line.points[point_index].origin; + } inline const struct RoadLinesData::road_line & operator[](const String &key) const { @@ -99,6 +173,12 @@ public: CLine *cl = e.get_mut(); if (cl->line.edges.size() != cl->line.points.size() - 1) cl->line.edges.resize(cl->line.points.size() - 1); + e.modified(); + } + void update_line(const String &key) + { + flecs::entity e = lookup_create(key); + e.modified(); } inline void insert_line_point(const String &key, int index, const Transform &xform) @@ -294,6 +374,71 @@ RoadLinesData::get_line(const String &key) const { return ::lines[key]; } +const struct RoadLinesData::road_line * +RoadLinesData::get_line_ptr(const String &key) const +{ + return ::lines.get_line_ptr(key); +} +RoadLinesData::road_edge RoadLinesData::get_line_edge(const String &key, + int edge) const +{ + return ::lines.get_line_ptr(key)->edges[edge]; +} +RoadLinesData::road_edge_side +RoadLinesData::get_line_edge_left(const String &key, int edge) const +{ + return ::lines.get_line_edge_left(key, edge); +} +RoadLinesData::road_edge_side +RoadLinesData::get_line_edge_right(const String &key, int edge) const +{ + return ::lines.get_line_edge_right(key, edge); +} +RoadLinesData::road_edge_side +RoadLinesData::get_line_edge_side(const String &key, int edge, int side) const +{ + switch (side) { + case 0: + return get_line_edge_left(key, edge); + break; + case 1: + return get_line_edge_right(key, edge); + break; + default: + assert(false); + break; + } + assert(false); + /* should never happen */ + return RoadLinesData::road_edge_side(get_line_edge(key, edge)); +} +void RoadLinesData::set_line_edge_left(const String &key, int edge, + road_edge_side &side) +{ + ::lines.set_line_edge_left(key, edge, side); + assert(::lines.get_line_edge(key, edge).left.lot == side.lot); +} +void RoadLinesData::set_line_edge_right(const String &key, int edge, + road_edge_side &side) +{ + ::lines.set_line_edge_right(key, edge, side); + assert(::lines.get_line_edge(key, edge).right.lot == side.lot); +} +void RoadLinesData::set_line_edge(const String &key, int edge_id, + const road_edge &edge) +{ + ::lines.set_line_edge(key, edge_id, edge); + assert(::lines.get_line_edge(key, edge_id).left.lot == edge.left.lot); + assert(::lines.get_line_edge(key, edge_id).right.lot == edge.right.lot); +} +int RoadLinesData::get_line_edge_count(const String &key) const +{ + return ::lines.get_line_edge_count(key); +} +const Vector3 &RoadLinesData::get_line_point(const String &key, int index) const +{ + return ::lines.get_line_point(key, index); +} const RoadLinesData::road_line &RoadLinesData::lines(const String &key) const { return ::lines[key]; @@ -307,6 +452,15 @@ void RoadLinesData::set_line(const String &key, const road_line &line) { ::lines.set_line(key, line); } +void RoadLinesData::update_line(const String &key) +{ + ::lines.update_line(key); +} +const Transform &RoadLinesData::get_line_point_transform(const String &key, + int index) const +{ + return ::lines.get_line_point_transform(key, index); +} bool RoadLinesData::has_line(const String &key) { return ::lines.has(key); @@ -446,6 +600,7 @@ void RoadLinesData::load_data() ::lines.get_key_list(&tkeys); assert(!tkeys.empty()); } + update_line_edges(); initialized = true; } void RoadLinesData::save_data() @@ -895,3 +1050,40 @@ Vector3 RoadLinesData::get_point_by_offsets(const String &line, print_verbose("data: " + (ret.operator String())); return ret; } + +bool RoadLinesData::road_edge_side::test( + const struct RoadLinesData::test_edge &other) +{ + float dst = Geometry::get_closest_distance_between_segments( + test_p[0], test_p[1], other.p0, other.p1); + if (dst < 4.0f) { + print_line("dst: " + String::num(dst)); + print_line(test_p[0].operator String() + " " + + test_p[1].operator String()); + print_line(other.p0.operator String() + " " + + other.p1.operator String()); + print_line("index: " + itos(other.edge_index)); + return false; + } + if (other.left.lot > 0) { + dst = Geometry::get_closest_distance_between_segments( + test_p[0], test_p[1], other.left.test_p[0], + other.left.test_p[1]); + if (dst < 4.0f) + return false; + } + if (other.right.lot > 0) { + dst = Geometry::get_closest_distance_between_segments( + test_p[0], test_p[1], other.right.test_p[0], + other.right.test_p[1]); + if (dst < 4.0f) + return false; + } + return true; +} + +void RoadLinesData::road_edge_side::update_test_points( + const RoadLinesData::road_edge &edge) +{ + test_p[1] = test_p[0] + normal * lot_depth; +} diff --git a/src/modules/stream/road_lines_data.h b/src/modules/stream/road_lines_data.h index a511c6f..aa8680b 100644 --- a/src/modules/stream/road_lines_data.h +++ b/src/modules/stream/road_lines_data.h @@ -27,7 +27,15 @@ public: }; public: + struct test_edge; + struct road_edge; + struct road_line; struct road_edge_side { + const RoadLinesData::road_edge &edge; + Vector3 normal; + Vector3 pmid[2]; + Vector3 pside[2]; + Vector3 test_p[2]; int transit_stop_count; String transit_stop_type; float transit_stop_offset; @@ -45,6 +53,12 @@ public: float lot_y_offset; float lot_y_rotation; String lot_type; + + float lot_depth; + /* calculated */ + float lot_depth_eff; + + public: struct buildings { String id; Vector3 offsets; @@ -97,6 +111,7 @@ public: ret["sideroad_y_rotation"] = sideroad_y_rotation; ret["sideroad_type"] = sideroad_type; ret["lot"] = lot; + ret["lot_depth"] = lot_depth; ret["lot_offset"] = lot_offset; ret["lot_dir_offset"] = lot_dir_offset; ret["lot_y_offset"] = lot_y_offset; @@ -112,8 +127,9 @@ public: ret["lot_buildings"] = lot_buildings; return ret; } - road_edge_side() - : transit_stop_count(0) + road_edge_side(const RoadLinesData::road_edge &edge) + : edge(edge) + , transit_stop_count(0) , transit_stop_type("") , transit_stop_offset(0.0f) , transit_stop_dir_offset(0.0f) @@ -130,6 +146,7 @@ public: , lot_y_offset(0.0f) , lot_y_rotation(0.0f) , lot_type(String("")) + , lot_depth(100.0f) , buildings{} { } @@ -151,6 +168,7 @@ public: side.sideroad_y_rotation = dict["sideroad_y_rotation"]; side.sideroad_type = dict["sideroad_type"]; side.lot = dict["lot"]; + side.lot_depth = dict.get("lot_depth", 100.0f); side.lot_offset = dict["lot_offset"]; side.lot_dir_offset = dict["lot_dir_offset"]; side.lot_y_offset = dict["lot_y_offset"]; @@ -169,6 +187,118 @@ public: parts[i]); } } + bool test(const struct RoadLinesData::test_edge &other); + void + update_test_points(const struct RoadLinesData::road_edge &edge); + struct RoadLinesData::road_edge_side & + operator=(const struct RoadLinesData::road_edge_side &other) + { + if (this == &other) + return *this; + from_dict(*this, other.to_dict()); + pmid[0] = other.pmid[0]; + pmid[1] = other.pmid[1]; + pside[0] = other.pside[0]; + pside[1] = other.pside[1]; + normal = other.normal; + test_p[0] = other.test_p[0]; + test_p[1] = other.test_p[1]; + lot_depth_eff = other.lot_depth_eff; + return *this; + } + }; + struct test_edge { + String line_key; + int edge_index; + int p0_index, p1_index; + Vector3 p0, p1; + struct road_edge_side left, right; + test_edge(const String &key, int index) + : line_key(key) + , edge_index(index) + , left(RoadLinesData::get_singleton() + ->lines(key) + .edges[index]) + , right(RoadLinesData::get_singleton() + ->lines(key) + .edges[index]) + { + update_from_line(); + } + bool operator==(const struct test_edge &other) + { + return line_key == other.line_key && + edge_index == other.edge_index; + } + void validate() + { + RoadLinesData *rld = RoadLinesData::get_singleton(); + RoadLinesData::road_edge edge = + rld->get_line_edge(line_key, edge_index); + if (edge.left.lot != left.lot) { + print_line("key: " + line_key + + " index: " + itos(edge_index)); + print_line("rl.edges[edge_index].left.lot = " + + itos(edge.left.lot)); + print_line("left.lot = " + itos(left.lot)); + } + if (edge.right.lot != right.lot) { + print_line("key: " + line_key + + " index: " + itos(edge_index)); + print_line("rl.edges[edge_index].right.lot = " + + itos(edge.right.lot)); + print_line("right.lot = " + itos(right.lot)); + } + assert(edge.left.lot == left.lot); + assert(edge.left.lot_depth == left.lot_depth); + assert(edge.right.lot == right.lot); + assert(edge.right.lot_depth == right.lot_depth); + } + void update_from_line() + { + RoadLinesData *rld = RoadLinesData::get_singleton(); + RoadLinesData::road_edge edge = + rld->get_line_edge(line_key, edge_index); + print_line("line: " + line_key + + " index: " + itos(edge_index) + + " left.lot: " + itos(edge.left.lot) + + " right.lot: " + itos(edge.right.lot)); + print_line(edge.left.pmid[0].operator String()); + print_line(edge.right.pmid[0].operator String()); + assert(edge.left.pmid[0].is_equal_approx( + edge.right.pmid[0])); + assert(edge.left.pmid[1].is_equal_approx( + edge.right.pmid[1])); + + left = edge.left; + right = edge.right; + left.normal = edge.left.normal; + left.lot = edge.left.lot; + left.lot_depth = edge.left.lot_depth; + right.normal = edge.right.normal; + right.lot = edge.right.lot; + right.lot_depth = edge.right.lot_depth; + validate(); + } + void update_line() + { + print_line("update_line"); + RoadLinesData *rld = RoadLinesData::get_singleton(); + RoadLinesData::road_edge_side tmp_left = + rld->get_line_edge_left(line_key, edge_index); + RoadLinesData::road_edge_side tmp_right = + rld->get_line_edge_right(line_key, edge_index); + tmp_left.lot = left.lot; + tmp_left.lot_depth = left.lot_depth; + tmp_right.lot = right.lot; + tmp_right.lot_depth = right.lot_depth; + rld->set_line_edge_left(line_key, edge_index, tmp_left); + rld->set_line_edge_right(line_key, edge_index, + tmp_right); + validate(); + rld->update_line_edges(); + validate(); + } }; struct road_edge { struct road_edge_side left, right; @@ -188,10 +318,18 @@ public: road_edge_side::from_dict(edge.left, dleft); road_edge_side::from_dict(edge.right, dright); } + road_edge() + : left(*this) + , right(*this) + { + } }; struct road_line { std::vector points; + std::vector edges; + + public: std::vector segments; int lanes; int pattern; @@ -202,6 +340,50 @@ public: struct road_line_index { std::vector indices; }; + void update_line_edges() + { + int edge_index; + List keys; + get_road_lines_key_list(&keys); + List::Element *e = keys.front(); + while (e) { + String key = e->get(); + // struct road_line rl = get_line(key); + for (edge_index = 0; + edge_index < get_line_edge_count(key); + edge_index++) { + const Vector3 &p0 = + get_line_point(key, edge_index); + const Vector3 &p1 = + get_line_point(key, edge_index + 1); + Vector3 dir = (p1 - p0).normalized(); + Vector3 d = dir; + Vector3 left_n = Vector3(0, 1, 0).cross(d); + Vector3 right_n = -left_n; + RoadLinesData::road_edge tmp_edge = + get_line_edge(key, edge_index); + tmp_edge.left.normal = left_n; + tmp_edge.right.normal = right_n; + tmp_edge.left.pmid[0] = p0; + tmp_edge.left.pmid[1] = p1; + tmp_edge.right.pmid[0] = p0; + tmp_edge.right.pmid[1] = p1; + tmp_edge.left.test_p[0] = p0 + (p1 - p0) * 0.5f; + tmp_edge.left.test_p[1] = + tmp_edge.left.test_p[0] + + tmp_edge.left.normal * + tmp_edge.left.lot_depth; + tmp_edge.right.test_p[0] = + p0 + (p1 - p0) * 0.5f; + tmp_edge.right.test_p[1] = + tmp_edge.right.test_p[0] + + tmp_edge.right.normal * + tmp_edge.right.lot_depth; + set_line_edge(key, edge_index, tmp_edge); + } + e = e->next(); + } + } public: static ImmediateGeometry *get_debug_node(); @@ -214,6 +396,25 @@ public: const struct road_line &lines(const String &key) const; const struct road_line_index &indices(const String &key) const; void set_line(const String &key, const struct road_line &line); + void update_line(const String &key); + const struct road_line *get_line_ptr(const String &key) const; + struct road_edge get_line_edge(const String &key, int edge) const; + struct road_edge_side get_line_edge_left(const String &key, + int edge) const; + struct road_edge_side get_line_edge_right(const String &key, + int edge) const; + struct road_edge_side get_line_edge_side(const String &key, int edge, + int side) const; + void set_line_edge_left(const String &key, int edge, + struct road_edge_side &side); + void set_line_edge_right(const String &key, int edge, + struct road_edge_side &side); + void set_line_edge(const String &key, int edge_id, + const struct road_edge &edge); + int get_line_edge_count(const String &key) const; + const Vector3 &get_line_point(const String &key, int index) const; + const Transform &get_line_point_transform(const String &key, + int index) const; bool has_line(const String &key); void insert_line_point(const String &key, int index, const Transform &xform); diff --git a/src/modules/stream/road_lines_editor.cpp b/src/modules/stream/road_lines_editor.cpp index dd2c327..bfdba59 100644 --- a/src/modules/stream/road_lines_editor.cpp +++ b/src/modules/stream/road_lines_editor.cpp @@ -589,6 +589,7 @@ void RoadLinesEditor::create_new_line_at_cursor(const String &line_name) assert(rld->has_line(line_name)); update_line_index_ui(); update_ui(); + rld->update_line_edges(); } void RoadLinesEditor::delete_current_line() @@ -599,6 +600,7 @@ void RoadLinesEditor::delete_current_line() rld->erase_line(delete_line); update_line_index_ui(); update_ui(); + rld->update_line_edges(); } Vector3 RoadLinesEditor::get_cursor_position() @@ -1027,6 +1029,7 @@ void RoadLinesEditor::event_handler(const String &event, } RoadLinesData::road_edge::from_dict(rl.edges[index], data); rld->set_line(current_line, rl); + rld->update_line_edges(); print_line("Update for index: " + itos(index) + " done"); } } @@ -1199,8 +1202,10 @@ class EdgeEditorHandler { void set_lot(RoadLinesData::road_edge_side &side, const String &pname, float dir_offt) { + print_line("set_lot"); side.lot_type = pname.replace("lot-", ""); if (side.lot == 0) { + print_line("set_lot 2"); side.lot = 1; side.lot_offset = get_edge_conf(pname, "left", "lot_offset"); @@ -1278,7 +1283,6 @@ class EdgeEditorHandler { b.id = pname; b.offsets = Vector3(); b.y_rotation = 0.0f; - rl.edges[index].left.buildings.push_back(b); if (rl.edges[index].left.lot > 0) { String lot_id = @@ -1307,6 +1311,8 @@ class EdgeEditorHandler { rl.edges[index].right.buildings.clear(); } rld->set_line(current_line, rl); + print_line("line updated: " + current_line); + rld->update_line_edges(); editor->rebuild_roads(); } else if (event == "road_lines_edge_editor::menu::right") { PopupMenu *menu = Object::cast_to(args[0]); @@ -1358,6 +1364,8 @@ class EdgeEditorHandler { rl.edges[index].right.buildings.clear(); } rld->set_line(current_line, rl); + rld->update_line_edges(); + print_line("line updated: " + current_line); editor->rebuild_roads(); } } diff --git a/src/modules/stream/road_processing.cpp b/src/modules/stream/road_processing.cpp index e6982c2..546102f 100644 --- a/src/modules/stream/road_processing.cpp +++ b/src/modules/stream/road_processing.cpp @@ -4,11 +4,14 @@ #include #include #include +#include #include #include #include #include #include +#include +#include #include #include #include @@ -20,13 +23,112 @@ #include "buildings_data.h" #include "road_processing.h" +struct side_ref { + String line_key; + int edge; + int side; // left = 0, right = 1 +}; struct wedge { Vector3 p[3]; Vector3 y[3]; int width1, width2; - const RoadLinesData::road_edge_side *side1, *side2; + struct side_ref side1_ref, side2_ref; + bool acute; }; +class DebugGeo : public ImmediateGeometry { + Ref imm_mat; + int vertex_count; +#if 0 + RID im; + bool empty; + AABB aabb; + +#endif +public: + DebugGeo() + : ImmediateGeometry() + , vertex_count(0) + { +#if 0 + im = RID_PRIME( + VisualServer::get_singleton()->immediate_create()); + set_base(im); + empty = true; +#endif + if (!imm_mat.is_valid()) { + imm_mat.instance(); + imm_mat->set_flag( + SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, + true); + imm_mat->set_flag( + SpatialMaterial::FLAG_DISABLE_DEPTH_TEST, true); + imm_mat->set_flag(SpatialMaterial::FLAG_UNSHADED, true); + } + set_material_override(imm_mat); + } + void add_vertex(const Vector3 &v) + { + if (vertex_count++ > 50000) { + print_error("Too many vertices"); + return; + } + ImmediateGeometry::add_vertex(v); + print_line("vertex: " + itos(vertex_count) + " " + + v.operator String()); + } + void end() + { + ImmediateGeometry::end(); + print_line("total vertex count: " + itos(vertex_count)); + vertex_count = 0; + } +#if 0 + + PoolVector get_faces(uint32_t p_usage_flags) const + { + return PoolVector(); + } + AABB get_aabb() const + { + return aabb; + } + void begin_lines() + { + VisualServer::get_singleton()->immediate_begin( + im, VisualServer::PRIMITIVE_LINES, RID()); + } + void end() + { + VisualServer::get_singleton()->immediate_end(im); + } + void set_color(const Color &c) + { + VisualServer::get_singleton()->immediate_color(im, c); + } + void add_vertex(const Vector3 &v) + { + VisualServer::get_singleton()->immediate_vertex(im, v); + if (empty) { + aabb.position = v; + aabb.size = Vector3(); + empty = false; + } else + aabb.expand_to(v); + } + void clear() + { + VisualServer::get_singleton()->immediate_clear(im); + empty = true; + } + ~DebugGeo() + { + VisualServer::get_singleton()->free(im); + } +#endif +}; + +static Ref dbg_mat; struct RoadLinesProcessing { std::vector nodes; struct edgedata { @@ -44,6 +146,8 @@ struct RoadLinesProcessing { std::unordered_map, const RoadLinesData::road_edge_side *, side_hash> sides; + std::unordered_map, struct side_ref, side_hash> + side_refs; std::unordered_map > wedges; String road_center_mesh_path, road_mid_mesh_path, road_sidewalk_mesh_path; @@ -105,13 +209,13 @@ struct RoadLinesProcessing { int create_sideroads(const String &line_key, int edge_no, const RoadLinesData::road_edge &edge, const Vector3 &p0, const Vector3 &p1, - const Vector3 &dir, const Vector3 left_n, - const Vector3 &right_n) + const Vector3 &dir) { int structures_generated = 0; if (edge.left.sideroad > 0) { Transform xform = get_structure_transform( - p0, p1, dir, left_n, edge.left.sideroad_offset, + p0, p1, dir, edge.left.normal, + edge.left.sideroad_offset, edge.left.sideroad_dir_offset, edge.left.sideroad_y_rotation, edge.left.sideroad_y_offset); @@ -137,7 +241,7 @@ out:; } if (edge.right.sideroad > 0) { Transform xform = get_structure_transform( - p0, p1, dir, right_n, + p0, p1, dir, edge.right.normal, edge.right.sideroad_offset, edge.right.sideroad_dir_offset, edge.right.sideroad_y_rotation, @@ -206,10 +310,10 @@ out2:; } int create_lots(const String &line_key, int edge_no, const RoadLinesData::road_edge &edge, const Vector3 &p0, - const Vector3 &p1, const Vector3 &dir, - const Vector3 left_n, const Vector3 &right_n) + const Vector3 &p1, const Vector3 &dir) { int structures_generated = 0; +#if 0 if (edge.left.lot > 0) { Transform xform = get_structure_transform( p0, p1, dir, left_n, edge.left.lot_offset, @@ -262,13 +366,13 @@ out2:; "right"); } } +#endif return structures_generated; } int create_transit_stops(const String &line_key, int edge_no, const RoadLinesData::road_edge &edge, const Vector3 &p0, const Vector3 &p1, - const Vector3 &dir, const Vector3 left_n, - const Vector3 &right_n) + const Vector3 &dir) { int j; int structures_generated = 0; @@ -280,7 +384,7 @@ out2:; l / ((float)(edge.left.transit_stop_count + 1)); for (j = 0; j < edge.left.transit_stop_count; j++) { Transform xform = get_structure_transform( - p0, p1, dir, left_n, + p0, p1, dir, edge.left.normal, edge.left.transit_stop_offset, t + edge.left.transit_stop_dir_offset, edge.left.transit_stop_y_rotation, @@ -310,7 +414,7 @@ out2:; ((float)(edge.right.transit_stop_count + 1)); for (j = 0; j < edge.right.transit_stop_count; j++) { Transform xform = get_structure_transform( - p0, p1, dir, right_n, + p0, p1, dir, edge.right.normal, edge.right.transit_stop_offset, t + edge.right.transit_stop_dir_offset, edge.right.transit_stop_y_rotation, @@ -335,6 +439,573 @@ out2:; } return structures_generated; } + bool segment_intersects_lines(const String &ignore_key, + int ignore_index, const Vector3 &p0, + const Vector3 &p1) + { + int i; + List keys; + RoadLinesData *rld = RoadLinesData::get_singleton(); + rld->get_road_lines_key_list(&keys); + List::Element *e = keys.front(); + bool ok = true; + while (e) { + const String &key = e->get(); + for (i = 0; i < (int)rld->lines(key).edges.size(); + i++) { + if (key == ignore_key && i == ignore_index) + continue; + const Vector3 &other_p0 = + rld->lines(key).points[i].origin; + const Vector3 &other_p1 = + rld->lines(key).points[i + 1].origin; + float dst = Geometry:: + get_closest_distance_between_segments( + p0, p1, other_p0, other_p1); + if (dst < 4.0f) { + ok = false; + break; + } + } + if (!ok) + break; + e = e->next(); + } + return !ok; + } + void build_edge_list() + { + } +#if 0 + std::vector test_edges; +#endif + void test_lines() + { + int i; + List keys; + RoadLinesData *rld = RoadLinesData::get_singleton(); + rld->get_road_lines_key_list(&keys); + List::Element *e = keys.front(); + while (e) { + const String &key = e->get(); + for (i = 0; i < (int)rld->lines(key).edges.size(); + i++) { + assert(rld->lines(key).edges[i].left.pmid[0] == + rld->lines(key).edges[i].right.pmid[0]); + assert(rld->lines(key).edges[i].left.pmid[1] == + rld->lines(key).edges[i].right.pmid[1]); + } + e = e->next(); + } + } +#if 0 + void build_test_edges() + { + int i, j; + int edge_count = 0; + List keys; + RoadLinesData *rld = RoadLinesData::get_singleton(); + rld->get_road_lines_key_list(&keys); + List::Element *e = keys.front(); + while (e) { + const String &key = e->get(); + edge_count += rld->lines(key).edges.size(); + e = e->next(); + } + test_edges.clear(); + test_edges.reserve(edge_count); + e = keys.front(); + while (e) { + const String &key = e->get(); + for (i = 0; i < (int)rld->lines(key).edges.size(); + i++) { + assert(rld->lines(key).edges[i].left.pmid[0] == + rld->lines(key).edges[i].right.pmid[0]); + assert(rld->lines(key).edges[i].left.pmid[1] == + rld->lines(key).edges[i].right.pmid[1]); + test_edges.emplace(test_edges.end(), key, i); + } + e = e->next(); + } + for (i = 0; i < (int)test_edges.size(); i++) { + test_edges[i].validate(); + } + // FIXME: the bug is here + for (i = 0; i < (int)test_edges.size(); i++) + test_edges[i].update_line(); + for (i = 0; i < (int)test_edges.size(); i++) + test_edges[i].validate(); + float depth_mul = 0.5f; + for (i = 0; i < (int)test_edges.size(); i++) + for (j = 0; j < (int)test_edges.size(); j++) { + if (i == j) + continue; + if (test_edges[i] == test_edges[j]) + continue; + if (test_edges[i].left.lot > 0) { + while (!test_edges[i].left.test( + test_edges[j])) { + test_edges[i].left.lot_depth *= + depth_mul; + print_error( + "Badness: " + + String::num( + test_edges[i] + .left + .lot_depth)); + test_edges[i].left.test_p[1] = + test_edges[i] + .left.test_p[0] + + test_edges[i].left + .normal * + test_edges[i] + .left + .lot_depth; + if (test_edges[i].left.lot_depth < + 10.0f) { + test_edges[i].left.lot = + 0; + print_line( + "lot disabled"); + break; + } + } + } + if (test_edges[i].right.lot > 0) { + while (!test_edges[i].right.test( + test_edges[j])) { + test_edges[i].right.lot_depth *= + depth_mul; + print_error( + "Badness: " + + String::num( + test_edges[i] + .right + .lot_depth)); + test_edges[i].right.test_p[0] = + test_edges[i].p0 + + (test_edges[i].p1 - + test_edges[i].p0) * + 0.5f; + test_edges[i].right.test_p[1] = + test_edges[i] + .right + .test_p[0] + + test_edges[i].right + .normal * + test_edges[i] + .left + .lot_depth; + if (test_edges[i] + .right.lot_depth < + 10.0f) { + test_edges[i].right.lot = + 0; + print_line( + "lot disabled"); + break; + } + } + } + } + for (i = 0; i < (int)test_edges.size(); i++) + test_edges[i].update_line(); + for (i = 0; i < (int)test_edges.size(); i++) + test_edges[i].validate(); + } +#endif + void calculate_lot_depths() + { + int i; + List keys; + RoadLinesData *rld = RoadLinesData::get_singleton(); + rld->get_road_lines_key_list(&keys); + List::Element *e = keys.front(); + while (e) { + const String &key = e->get(); + for (i = 0; i < (int)rld->get_line_edge_count(key); + i++) { + RoadLinesData::road_edge_side left = + rld->get_line_edge_left(key, i); + left.lot = 1; + left.lot_depth = 100.0f; + left.lot_depth_eff = 100.0f; + rld->set_line_edge_left(key, i, left); + RoadLinesData::road_edge_side right = + rld->get_line_edge_right(key, i); + right.lot = 1; + right.lot_depth = 100.0f; + right.lot_depth_eff = 100.0f; + rld->set_line_edge_left(key, i, right); + } + e = e->next(); + } +#if 0 + build_test_edges(); +#endif + } +#if 0 + RID imm; + RID imm_instance; + RID scenario; + Ref imm_mat; +#endif + void update_lot_depths() + { + int i, j; + struct line_check { + struct side_ref side; + Vector3 normal; + float depth; + Vector3 startp; + AABB rect; + }; + LocalVector check_lines; + RoadLinesProcessing *r = RoadLinesProcessing::get_singleton(); + if (r->nodes.size() == 0) + return; +#if 0 + if (!imm_mat.is_valid()) { + imm_mat.instance(); + imm_mat->set_flag( + SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, + true); + imm_mat->set_flag( + SpatialMaterial::FLAG_DISABLE_DEPTH_TEST, true); + imm_mat->set_flag(SpatialMaterial::FLAG_UNSHADED, true); + } + if (imm == RID() || imm_instance == RID() || + scenario == RID()) { + scenario = SceneTree::get_singleton() + ->get_root() + ->get_world() + ->get_scenario(); + assert(scenario != RID()); + imm_instance = RID_PRIME(VisualServer::get_singleton() + ->instance_create()); + assert(imm_instance != RID()); + + VisualServer::get_singleton()->instance_set_scenario( + imm_instance, scenario); + + imm = VisualServer::get_singleton()->immediate_create(); + assert(imm != RID()); + VisualServer::get_singleton()->instance_set_base( + imm_instance, imm); + + VisualServer::get_singleton()->instance_set_transform( + imm_instance, Transform()); + + VisualServer::get_singleton()->immediate_set_material( + imm, imm_mat->get_rid()); + VisualServer::get_singleton() + ->instance_geometry_set_cast_shadows_setting( + imm_instance, + VisualServer::SHADOW_CASTING_SETTING_OFF); + ; + } + VisualServer::get_singleton()->instance_set_visible( + imm_instance, false); + VisualServer::get_singleton()->immediate_clear(imm); + VisualServer::get_singleton()->immediate_begin( + imm, VisualServer::PRIMITIVE_LINES, RID()); +#endif + DebugGeo *dbg = memnew(DebugGeo); + if (r->nodes.empty()) + goto out_skip_end; + // dbg->set_material_override(dbg_mat); + SceneTree::get_singleton()->get_current_scene()->add_child(dbg); + print_line("wedges size:" + itos(r->nodes.size())); + dbg->clear(); + dbg->begin(Mesh::PRIMITIVE_LINES); + dbg->set_color(Color(1, 0, 0, 1)); +#if 0 + dbg->add_vertex(Vector3(0, 0, 0)); + dbg->add_vertex(Vector3(0, 1000, 0)); + dbg->add_vertex(Vector3(10, 0, 0)); + dbg->add_vertex(Vector3(10, 1000, 0)); +#endif + for (i = 0; i < (int)r->nodes.size(); i++) { + const std::vector &ws = wedges[i]; + int wsize = ws.size(); + for (j = 0; j < wsize; j++) { + const struct wedge &w = wedges[i][j]; + struct RoadLinesData::road_edge_side mside1 = + RoadLinesData::get_singleton() + ->get_line_edge_side( + w.side1_ref.line_key, + w.side1_ref.edge, + w.side1_ref.side); + struct RoadLinesData::road_edge_side mside2 = + RoadLinesData::get_singleton() + ->get_line_edge_side( + w.side2_ref.line_key, + w.side2_ref.edge, + w.side2_ref.side); + Vector3 d1 = (w.p[1] - w.p[0]).normalized(); + Vector3 d2 = (w.p[2] - w.p[1]).normalized(); + Vector3 n1 = (w.p[0] - w.y[0]).normalized(); + Vector3 n2 = (w.p[1] - w.y[1]).normalized(); + Vector3 n3 = (w.p[2] - w.y[2]).normalized(); + mside1.lot_depth_eff = + MAX(mside1.lot_depth_eff, 100.0f); + mside2.lot_depth_eff = + MAX(mside2.lot_depth_eff, 100.0f); + assert(mside1.lot_depth_eff > 0.001); + assert(mside2.lot_depth_eff > 0.001); + struct line_check lc1, lc2; + int nlanes1 = w.width1 / 5.0f; + int nlanes2 = w.width2 / 5.0f; + float m = (w.p[1] - w.y[1]).length() / + (w.p[0] - w.y[0]).length(); + lc1.side = w.side1_ref; + lc1.depth = mside1.lot_depth_eff; + lc1.normal = n1; + lc1.startp = w.p[0] + (w.width1 - 4.0f) * n1; + lc1.rect.position = lc1.startp; + lc1.rect.size = Vector3(); + lc1.rect.expand_to(lc1.startp + n1 * lc1.depth); + lc2.side = w.side2_ref; + lc2.depth = MIN(mside1.lot_depth_eff, + mside2.lot_depth_eff); + lc2.normal = n2; + Vector3 x = n2 * (w.width2 - 4.0f) * m; + + lc2.startp = w.p[1] + x; + lc2.rect.position = lc2.startp; + lc2.rect.size = Vector3(); + lc2.rect.expand_to(lc2.startp + n2 * lc2.depth); +#if 0 + lc3.side = w.side2_ref; + lc3.depth = mside2.lot_depth_eff; + lc3.normal = n3; + lc3.startp = w.p[2]; + lc3.rect.position = lc3.startp; + lc3.rect.size = Vector3(); + lc3.rect.expand_to(lc3.startp + n3 * lc3.depth); +#endif + check_lines.push_back(lc1); + check_lines.push_back(lc2); + // check_lines.push_back(lc3); +#if 0 + Vector3 p0 = w.p[0]; + Vector3 p1 = p0 + n1 * mside1.lot_depth_eff; + Vector3 p2 = w.p[2]; + Vector3 p3 = p2 + n2 * mside2.lot_depth_eff; + p0.y = 0; + p1.y = 0; + p2.y = 0; + p3.y = 0; + Vector3 s, t; + Geometry::get_closest_points_between_segments( + p0, p1, p2, p3, s, t); + s.y = 0; + t.y = 0; + if (s.distance_to(t) < 1) { + Vector3 d = + s.linear_interpolate(t, 0.5f); + /* We consider having intersection */ + // FIXME: fix wedge to store line, edge, side + float l = w.p[1].distance_to(d); + if (mside1.lot_depth_eff > l) { + mside1.lot_depth_eff = l; + mside1.lot_depth = l; + if (w.side1_ref.side == 0) + RoadLinesData::get_singleton() + ->set_line_edge_left( + w.side1_ref + .line_key, + w.side1_ref + .edge, + mside1); + else + RoadLinesData::get_singleton() + ->set_line_edge_right( + w.side1_ref + .line_key, + w.side1_ref + .edge, + mside1); + print_line( + "updated depth: side1: " + + String::num(l)); + } + if (mside2.lot_depth_eff > l) { + mside2.lot_depth_eff = l; + mside2.lot_depth = l; + if (w.side2_ref.side == 0) + RoadLinesData::get_singleton() + ->set_line_edge_left( + w.side2_ref + .line_key, + w.side2_ref + .edge, + mside2); + else + RoadLinesData::get_singleton() + ->set_line_edge_right( + w.side2_ref + .line_key, + w.side2_ref + .edge, + mside2); + print_line( + "updated depth: side2: " + + String::num(l)); + } + } +#endif + } + } + assert(check_lines.size() > 0); + for (i = 0; i < (int)check_lines.size(); i++) { + Vector3 p0 = check_lines[i].startp; + Vector3 p1 = p0 + check_lines[i].normal * + check_lines[i].depth; + assert(p0.distance_squared_to(p1) > 0.001f); + dbg->set_color(Color(1, 0, 0, 1)); + dbg->add_vertex(p0); + dbg->add_vertex(p0 + Vector3(0, 100, 0)); + dbg->add_vertex(p1); + dbg->add_vertex(p1 + Vector3(0, 100, 0)); + dbg->set_color(Color(0, 0, 1, 1)); + dbg->add_vertex(p0); + dbg->add_vertex(p1); + for (j = 0; j < (int)check_lines.size(); j++) { + if (i == j) + continue; + Vector3 p2 = check_lines[j].startp; + Vector3 p3 = p2 + check_lines[j].normal * + check_lines[j].depth; + Vector3 s, t; +#if 0 + if (!check_lines[i].rect.intersects_segment(p2, + p3)) + continue; +#endif + /* samey segments do not intersect */ + if (p0.is_equal_approx(p2) && + p1.is_equal_approx(p3)) + continue; + if (p0.is_equal_approx(p3) && + p1.is_equal_approx(p2)) + continue; + /* segments which share a point do not intersect */ + if (p0.is_equal_approx(p2)) + continue; + if (p0.is_equal_approx(p3)) + continue; + if (p1.is_equal_approx(p3)) + continue; + if (p1.is_equal_approx(p2)) + continue; +#if 0 + VisualServer::get_singleton()->immediate_color( + imm, Color(1, 0, 0, 1)); + VisualServer::get_singleton()->immediate_vertex( + imm, Vector3(-10, 10, 0)); + print_line("p0: " + p0.operator String()); + VisualServer::get_singleton()->immediate_vertex( + imm, Vector3(0, 10, 0)); +#endif +#if 0 + VisualServer::get_singleton()->immediate_vertex( + imm, p0); + VisualServer::get_singleton()->immediate_vertex( + imm, p1); + VisualServer::get_singleton()->immediate_vertex( + imm, p2); + VisualServer::get_singleton()->immediate_vertex( + imm, p3); +#endif + assert(!p0.is_equal_approx(p1) && + !p2.is_equal_approx(p3)); + Geometry::get_closest_points_between_segments( + p0, p1, p2, p3, s, t); + /* consider match at end as not match at all */ + print_line("points: s: " + s.operator String()); + print_line("points: t: " + t.operator String()); + if (s.is_equal_approx(p0)) + continue; + if (s.is_equal_approx(p1)) + continue; + if (t.is_equal_approx(p2)) + continue; + if (t.is_equal_approx(p3)) + continue; + assert(!s.is_equal_approx(p0)); + assert(!s.is_equal_approx(p1)); + assert(!t.is_equal_approx(p2)); + assert(!t.is_equal_approx(p3)); + Vector3 mx(t.x, s.y, t.z); + if (!s.is_equal_approx(mx)) + continue; + if (Math::abs(s.y - t.y) < 5.0f) { + if (s.is_equal_approx(mx)) { + dbg->set_color( + Color(0, 1, 0, 1)); + dbg->add_vertex( + s + + Vector3(-0.5, 15, 0)); + dbg->add_vertex(s + Vector3(0.5, + 100, + 0)); + float l1 = p0.distance_to(s); + float l2 = p2.distance_to(t); + check_lines[i].depth = MIN( + check_lines[i].depth, + l1); + check_lines[j].depth = MIN( + check_lines[j].depth, + l2); + } + } + } + } +#if 0 + VisualServer::get_singleton()->immediate_end(imm); + VisualServer::get_singleton()->instance_set_visible( + imm_instance, true); +#endif + dbg->end(); + dbg->clear(); + dbg->begin(Mesh::PRIMITIVE_LINES); + dbg->set_color(Color(1, 0, 0, 1)); + for (i = 0; i < (int)check_lines.size(); i++) { + Vector3 p0 = check_lines[i].startp; + Vector3 p1 = p0 + check_lines[i].normal * + check_lines[i].depth; + assert(p0.distance_squared_to(p1) > 0.001f); + dbg->set_color(Color(1, 0, 0, 1)); + dbg->add_vertex(p0); + dbg->add_vertex(p0 + Vector3(0, 100, 0)); + dbg->add_vertex(p1); + dbg->add_vertex(p1 + Vector3(0, 100, 0)); + dbg->set_color(Color(0, 0, 1, 1)); + dbg->add_vertex(p0); + dbg->add_vertex(p1); + struct side_ref &side1 = check_lines[i].side; + struct RoadLinesData::road_edge_side mside1 = + RoadLinesData::get_singleton() + ->get_line_edge_side(side1.line_key, + side1.edge, + side1.side); + mside1.lot_depth_eff = check_lines[i].depth; + mside1.lot_depth = mside1.lot_depth_eff; + if (side1.side == 0) + RoadLinesData::get_singleton() + ->set_line_edge_left(side1.line_key, + side1.edge, + mside1); + else + RoadLinesData::get_singleton() + ->set_line_edge_right(side1.line_key, + side1.edge, + mside1); + } + dbg->end(); +out_skip_end:; + } void create_structures() { List keys; @@ -362,26 +1033,18 @@ out2:; i++) { const RoadLinesData::road_edge &edge = rld->lines(key).edges[i]; - const Vector3 &p0 = - rld->lines(key).points[i].origin; - const Vector3 &p1 = - rld->lines(key).points[i + 1].origin; + const Vector3 &p0 = edge.left.pmid[0]; + const Vector3 &p1 = edge.left.pmid[1]; Vector3 dir = (p1 - p0).normalized(); - Vector3 d = dir; - Vector3 left_n = Vector3(0, 1, 0).cross(d); - Vector3 right_n = -left_n; /* lots */ structures_generated += - create_lots(key, i, edge, p0, p1, dir, - left_n, right_n); + create_lots(key, i, edge, p0, p1, dir); /* sideroads */ - structures_generated += - create_sideroads(key, i, edge, p0, p1, - dir, left_n, right_n); + structures_generated += create_sideroads( + key, i, edge, p0, p1, dir); /* bus stops */ structures_generated += create_transit_stops( - key, i, edge, p0, p1, dir, left_n, - right_n); + key, i, edge, p0, p1, dir); } e = e->next(); } @@ -424,7 +1087,9 @@ out2:; edges[idx1].neighbors.end()) { edges[idx1].neighbors.push_back(idx2); sides[{ idx1, idx2 }] = - &rld->lines(key).edges[i].right; + &rld->lines(key).edges[i].left; + side_refs[{ idx1, idx2 }] = { key, i, + 0 }; } if (std::find(edges[idx2].neighbors.begin(), edges[idx2].neighbors.end(), @@ -432,7 +1097,9 @@ out2:; edges[idx2].neighbors.end()) { edges[idx2].neighbors.push_back(idx1); sides[{ idx2, idx1 }] = - &rld->lines(key).edges[i].left; + &rld->lines(key).edges[i].right; + side_refs[{ idx2, idx1 }] = { key, i, + 1 }; } } e = e->next(); @@ -514,36 +1181,44 @@ out2:; assert(sides.find({ n2, n1 }) != sides.end()); sides[{ k, n1 }] = sides[{ n2, n1 }]; + side_refs[{ k, n1 }] = + side_refs[{ n2, n1 }]; } if (std::find(edges[k].neighbors.begin(), edges[k].neighbors.end(), n2) == edges[k].neighbors.end()) { edges[k].neighbors.push_back(n2); sides[{ k, n2 }] = sides[{ n1, n2 }]; + side_refs[{ k, n2 }] = + side_refs[{ n1, n2 }]; } if (std::find(edges[n1].neighbors.begin(), edges[n1].neighbors.end(), k) == edges[n1].neighbors.end()) { edges[n1].neighbors.push_back(k); sides[{ n1, k }] = sides[{ n1, n2 }]; + side_refs[{ n1, k }] = + side_refs[{ n1, n2 }]; } if (std::find(edges[n2].neighbors.begin(), edges[n2].neighbors.end(), k) == edges[n2].neighbors.end()) { edges[n2].neighbors.push_back(k); sides[{ n2, k }] = sides[{ n2, n1 }]; + side_refs[{ n2, k }] = + side_refs[{ n2, n1 }]; } print_verbose("FIXED: " + itos(k) + ": " + String::num(dst)); } } } - Vector3 tangent(const Vector3 &v) + static Vector3 tangent(const Vector3 &v) { Vector2 rv = Vector2(v.x, v.z).tangent(); return Vector3(rv.x, v.y, rv.y); } - Vector3 normal(const Vector3 &v) + static Vector3 normal(const Vector3 &v) { Vector3 rv = tangent(v); rv.y = 0.0f; @@ -575,13 +1250,27 @@ out2:; int idx2 = edges[i].neighbors[j]; int onext = (j + 1) % edges[i].neighbors.size(); int idx3 = edges[i].neighbors[onext]; - const RoadLinesData::road_edge_side *side1 = - sides[{ idx2, idx1 }]; - const RoadLinesData::road_edge_side *side2 = - sides[{ idx1, idx3 }]; - print_line(itos(sides.size())); - print_line(itos(idx2) + " " + itos(idx1)); - print_line(itos(idx1) + " " + itos(idx3)); + struct side_ref side_ref1 = + side_refs[{ idx2, idx1 }]; + struct RoadLinesData::road_edge_side mside1 = + RoadLinesData::get_singleton() + ->get_line_edge_side( + side_ref1.line_key, + side_ref1.edge, + side_ref1.side); + const RoadLinesData::road_edge_side *side1; + side1 = &mside1; + struct side_ref side_ref2 = + side_refs[{ idx1, idx3 }]; + struct RoadLinesData::road_edge_side mside2 = + RoadLinesData::get_singleton() + ->get_line_edge_side( + side_ref2.line_key, + side_ref2.edge, + side_ref2.side); + + const RoadLinesData::road_edge_side *side2; + side2 = &mside2; assert(side1); assert(side2); Vector3 n1 = normal(node - neighbors[j]); @@ -595,7 +1284,9 @@ out2:; Vector3 b1 = (neighbors[onext] - node) * 0.5 + node + n2 * 3.0f; Vector3 q, r, pr; + bool acute = true; if (angle < 0 || angle > Math_PI) { + acute = false; Vector3 da = (a1 - a0).normalized() * road_side_width * 2.0f; Vector3 db = (b1 - b0).normalized() * @@ -651,8 +1342,9 @@ out2:; w.y[2] = o3; w.width1 = 2.0f * 5.0f; w.width2 = 2.0f * 5.0f; - w.side1 = side1; - w.side2 = side2; + w.side1_ref = side_ref1; + w.side2_ref = side_ref2; + w.acute = acute; wedges[i].push_back(w); } } @@ -684,6 +1376,9 @@ out2:; road_lines_nodes_hash; road_lines_nodes.clear(); road_lines_nodes_hash.clear(); + rld->update_line_edges(); + test_lines(); + calculate_lot_depths(); rld->set_debug_flags(debug_flags); rld->process_lines(road_lines_nodes_hash, road_lines_nodes); create_nodes(road_lines_nodes); @@ -692,6 +1387,7 @@ out2:; sort_neighbors(); wedges.clear(); build_wedges(wedges); + update_lot_depths(); ImmediateGeometry *d = rld->get_debug_node(); d->clear(); if (debug_flags & 1) { @@ -752,6 +1448,7 @@ out2:; } d->end(); } + RoadLinesProcessing::get_singleton()->create_structures(); print_line("ROAD SETUP DONE"); } }; @@ -785,6 +1482,10 @@ public: int i; Ref mesh = ResourceLoader::load(path, "ArrayMesh", true, &err); + if (!Engine::get_singleton()->is_editor_hint()) { + assert(mesh.is_valid()); + assert(err == OK); + } ERR_FAIL_COND_MSG(err != OK, "Failed to load: " + path); struct mesh_data md; int count = mesh->get_surface_count(); @@ -819,15 +1520,28 @@ public: } struct lane { Vector3 p[3]; - String use_mesh; - Transform xform1, xform2; - Transform xform_m1, xform_m2; - float l_seg1[3]; - float l_seg2[3]; + String use_mesh; /** use mesh namefor this lane */ + Transform xform1, xform2; /** rotations for ends + of this wedge start and end */ + Transform xform_m1, xform_m2; /** rotations for middle point of + wedge for end and start of segment */ + float l_seg1[3]; /** start segment scale */ + float l_seg2[3]; /** end segment scale */ }; + /** + * @brief transform mesh segment using start rotation @xform1 + * ane end rotation @xform2 + * + * @param xform1 - segment start rotation + * @param xform2 - segment end rotation + * @param l0 - start width multiplier + * @param l1 - end width multiplier + * @param arrays - input mesh arrays + * @param out_arrays - output mesh arrays + */ void build_segment(const Transform &xform1, const Transform xform2, float l0, float l1, const Array &arrays, - Array &out_arrays) + Array &out_arrays, float start_offset) { PoolVector vertices = arrays[ArrayMesh::ARRAY_VERTEX].duplicate(); @@ -839,41 +1553,38 @@ public: arrays[ArrayMesh::ARRAY_TEX_UV].duplicate(); PoolVector indices = arrays[ArrayMesh::ARRAY_INDEX].duplicate(); + assert(vertices.size() > 0); + assert(indices.size() > 0); float dlen = xform1.origin.distance_to(xform2.origin); + float offt = 0.0f; + if (dlen > start_offset) + offt = start_offset; int id; + Vector3 dir = xform2.origin - xform1.origin; + dir = dir.normalized(); + Transform xform1_c(xform1.basis, + xform1.origin + dir * start_offset); for (id = 0; id < vertices.size(); id++) { Vector3 p = vertices[id]; Vector3 n = normals[id]; Vector2 uv = uvs[id]; - if (p.z < -0.3f) { - // p.z = -dlen; - /* second segment */ + /* meshes go z [0.0 - -0.5] */ + if (p.z > -0.05f) p.z = 0.0f; - p.x *= l1; - uv.y *= dlen; - p = xform2.xform(p); - n = Transform(xform2.basis, Vector3()).xform(n); - } else { - uv.y *= dlen; - p.z = 0; - // p.z = 0; - p.x *= l0; - p = xform1.xform(p); - n = Transform(xform1.basis, Vector3()).xform(n); - } + else if (p.z < -0.45f) + p.z = -1.0f; + float dt = CLAMP(-p.z * 2.0f, 0.0f, 1.0f); + Transform xform = xform1_c.interpolate_with(xform2, dt); + float l = Math::lerp(l0, l1, dt); + p.z = 0.0f; + p.x *= l; + uv.y *= (dlen - start_offset); + p = xform.xform(p); + n = Transform(xform.basis, Vector3()).xform(n); vertices.write()[id] = p; normals.write()[id] = n; uvs.write()[id] = uv; } -#if 0 - for (i = 0; i < arrays.size(); i++) - out_arrays[i] = arrays[i]; - out_arrays[ArrayMesh::ARRAY_VERTEX] = vertices; - /* normals are bad */ - out_arrays[ArrayMesh::ARRAY_NORMAL] = normals; - out_arrays[ArrayMesh::ARRAY_TEX_UV] = uvs; - return; -#endif PoolVector out_index; out_index.resize(indices.size()); assert(out_arrays.size() >= ArrayMesh::ARRAY_MAX); @@ -922,10 +1633,11 @@ public: Vector3 dir1, dir2; float l1, l2, l3; int nlanes, nlanes1, nlanes2; - String center, mid, edge; + String center, mid, edge, lot; lane_params(const struct wedge &wedge, struct wedge_paths &paths, const String ¢er, - const String &mid, const String &edge) + const String &mid, const String &edge, + const String &lot) { nlanes1 = wedge.width1 / 5.0f; nlanes2 = wedge.width2 / 5.0f; @@ -951,6 +1663,7 @@ public: this->center = center; this->mid = mid; this->edge = edge; + this->lot = lot; if (!(l2 >= l1 - 0.0001f && l2 >= l3 - 0.0001f)) print_line("bad parameters: l1 = " + String::num(l1) + @@ -960,7 +1673,7 @@ public: assert(l1 - 3.0f < 0.001f); assert(l3 - 3.0f < 0.001f); assert(center.length() > 0 && mid.length() > 0 && - edge.length() > 0); + edge.length() > 0 && lot.length() > 0); } }; void setup_lane(struct lane &lane, int index, @@ -984,7 +1697,9 @@ public: lane.p[1] = p2; lane.p[2] = p3; String use_mesh = params.center; - if (index >= params.nlanes) + if (index > params.nlanes) + use_mesh = params.lot; + else if (index == params.nlanes) use_mesh = params.edge; else if (params.nlanes > 1 && index == 0) use_mesh = params.center; @@ -1030,8 +1745,138 @@ public: if (index > params.nlanes2 - 1 && index < params.nlanes2) lane.l_seg2[2] = 0; } + void update_lane(struct lane &lane, int index, + const struct lane_params ¶ms) + { + } + float get_mangle(const struct wedge &wedge) + { + Vector3 dir1 = wedge.p[0] - wedge.p[1]; + Vector3 dir2 = wedge.p[2] - wedge.p[1]; + float mangle = + Vector3(dir1.x, 0, dir1.z) + .signed_angle_to(Vector3(dir2.x, 0, dir2.z), + Vector3(0, 1, 0)); + return mangle; + } + float get_eangle(const struct wedge &wedge) + { + Vector3 dir1 = wedge.p[1] - wedge.p[0]; + Vector3 dir2 = wedge.p[2] - wedge.p[1]; + float mangle = + Vector3(dir1.x, 0, dir1.z) + .signed_angle_to(Vector3(dir2.x, 0, dir2.z), + Vector3(0, 1, 0)); + return mangle; + } + float get_lot_depth(const struct wedge &wedge) + { + RoadLinesData::road_edge_side mside1 = + RoadLinesData::get_singleton()->get_line_edge_side( + wedge.side1_ref.line_key, wedge.side1_ref.edge, + wedge.side1_ref.side); + RoadLinesData::road_edge_side mside2 = + RoadLinesData::get_singleton()->get_line_edge_side( + wedge.side2_ref.line_key, wedge.side2_ref.edge, + wedge.side2_ref.side); + float lot_depth_max = + MIN(mside1.lot_depth_eff, mside2.lot_depth_eff); + return lot_depth_max; + if (!wedge.acute) + return lot_depth_max; + float mangle = get_mangle(wedge); + if (Math::abs(mangle) > Math_PI * 0.9f) + return lot_depth_max; + Vector3 n1 = + RoadLinesProcessing::normal(wedge.y[1] - wedge.y[0]); + Vector3 n2 = + RoadLinesProcessing::normal(wedge.y[2] - wedge.y[1]); + Vector3 p0 = wedge.y[0].linear_interpolate(wedge.y[1], 0.5f); + Vector3 p1 = p0 + n1 * lot_depth_max; + Vector3 p2 = wedge.y[1].linear_interpolate(wedge.y[2], 0.5f); + Vector3 p3 = p0 + n2 * lot_depth_max; + Vector3 q, r; + Geometry::get_closest_points_between_segments(p0, p1, p2, p3, q, + r); + q.y = 0.0f; + r.y = 0.0f; + if (q.distance_squared_to(r) > 0.0f) + return lot_depth_max; + Vector3 d = q.linear_interpolate(r, 0.5f); + return MIN(lot_depth_max, d.distance_to(wedge.y[1])); + } + int get_split_level(const struct wedge &wedge) + { + float mangle = get_mangle(wedge); + if (mangle >= Math_PI * 2.0f / 2.1f || + mangle <= -Math_PI * 2.0f / 2.1f) + return 2; + else if (mangle >= Math_PI * 2.0f / 2.5f || + mangle <= -Math_PI * 2.0f / 2.5f) + return 3; + else if (mangle >= Math_PI * 2.0f / 3.0f || + mangle <= -Math_PI * 2.0f / 3.0f) + return 4; + else if (mangle >= Math_PI * 2.0f / 3.5f || + mangle <= -Math_PI * 2.0f / 3.5f) + return 5; + else if (mangle >= Math_PI * 2.0f / 4.0f || + mangle <= -Math_PI * 2.0f / 3.5f) + return 6; + else if (mangle >= Math_PI * 2.0f / 5.0f || + mangle <= -Math_PI * 2.0f / 3.5f) + return 7; + else + return 8; + } + bool validate_angle(const struct wedge &wedge) + { + if (!wedge.acute) + return true; + float mangle = get_mangle(wedge); + if (mangle >= Math_PI * 2.0f / 2.3f || + mangle <= -Math_PI * 2.0f / 2.3f) + return true; + return false; + } + void build_split_segment(const Transform &xform1, + const Transform xform2, float l0, float l1, + const Array &arrays, Array &out_arrays, + float start_offset, int count) + { + if (count <= 0) + return; + else if (count == 1) { + build_segment(xform1, xform2, l0, l1, arrays, + out_arrays, start_offset); + } else if (count > 1) { + std::vector transforms; + std::vector multipliers; + float l = l0; + float n = 0.0f; + float step = 1.0f / (float)count; + Transform mod = xform1; + int i; + for (i = 0; i < count; i++) { + transforms.push_back(mod); + multipliers.push_back(l); + n += step; + mod = xform1.interpolate_with(xform2, n); + l = Math::lerp(l0, l1, n); + } + transforms.push_back(xform2); + multipliers.push_back(l1); + for (i = 0; i < (int)transforms.size() - 1; i++) + build_segment(transforms[i], transforms[i + 1], + multipliers[i], + multipliers[i + 1], arrays, + out_arrays, start_offset); + } + } + /** build mesh for whole wedge */ void build_wedge_mesh(const struct wedge &wedge, const String ¢er, const String &mid, const String &edge, + const String &lot, std::vector &out_surfaces, std::vector > &out_materials) { @@ -1041,15 +1886,33 @@ public: int segment_count = 0; std::vector lanes; bool sidewalk = true; - struct lane_params params(wedge, paths, center, mid, edge); + bool lot_enabled = true; + struct lane_params params(wedge, paths, center, mid, edge, lot); int parts = params.nlanes; if (sidewalk) parts = params.nlanes + 1; + if (sidewalk && lot_enabled) + parts = params.nlanes + 2; lanes.resize(parts); for (k = 0; k < (int)lanes.size(); k++) { setup_lane(lanes[k], k, params); assert(lanes[k].use_mesh.length() > 0); } + RoadLinesData::road_edge_side mside1 = + RoadLinesData::get_singleton()->get_line_edge_side( + wedge.side1_ref.line_key, wedge.side1_ref.edge, + wedge.side1_ref.side); + RoadLinesData::road_edge_side mside2 = + RoadLinesData::get_singleton()->get_line_edge_side( + wedge.side2_ref.line_key, wedge.side2_ref.edge, + wedge.side2_ref.side); + print_line("m1: " + String::num(mside1.lot_depth_eff)); + print_line("m2: " + String::num(mside2.lot_depth_eff)); + // mside1.lot_depth_eff = 100.0f; + // mside2.lot_depth_eff = 100.0f; + // assert(mside1.lot_depth_eff >= 0.98f); + // assert(mside2.lot_depth_eff >= 0.98f); + /* for each lane */ for (k = 0; k < (int)lanes.size(); k++) { std::vector surfaces; std::vector > materials; @@ -1060,6 +1923,8 @@ public: road_meshes[lanes[k].use_mesh].arrays.size()); assert(surfaces.size() > 0); assert(materials.size() > 0); + /* initialize surfaces and materials for each + road mesh for the lane*/ for (h = 0; h < road_meshes[lanes[k].use_mesh].arrays.size(); h++) { @@ -1068,12 +1933,16 @@ public: materials[h] = road_meshes[lanes[k].use_mesh] .materials[h]; } + /* initialize out surfaces and materials*/ /* assuming the same surface count for all meshes */ if (out_surfaces.size() > 0) { + /* for each surface */ for (h = 0; h < road_meshes[lanes[k].use_mesh] .arrays.size(); h++) { + /* initialize only empty surfaces */ if (out_surfaces[h].size() == 0) { + /* initialize surfaces for out_surfaces */ Array surface; init_surface(surface); out_surfaces[h] = surface; @@ -1081,9 +1950,11 @@ public: } } } else if (out_surfaces.size() == 0) { + /* for each surface */ for (h = 0; h < road_meshes[lanes[k].use_mesh] .arrays.size(); h++) { + /* initialize surfaces for out_surfaces */ Array surface; init_surface(surface); out_surfaces[h] = surface; @@ -1093,28 +1964,168 @@ public: .arrays.size() > 0); } assert(out_surfaces.size() > 0); + /* for each surface build just 1 segment?*/ for (h = 0; h < road_meshes[lanes[k].use_mesh].arrays.size(); h++) { + /* generate for each wedge segment */ assert(out_surfaces[h].size() >= ArrayMesh::ARRAY_MAX); - build_segment(lanes[k].xform1, - lanes[k].xform_m1, - lanes[k].l_seg1[0], - lanes[k].l_seg1[1], surfaces[h], - out_surfaces[h]); - build_segment(lanes[k].xform_m2, - lanes[k].xform2, - lanes[k].l_seg2[1], - lanes[k].l_seg2[2], surfaces[h], - out_surfaces[h]); + float sideroad_l = 3.0f; + float lot_depth1 = mside1.lot_depth; + if (k == params.nlanes && + mside1.lot > 0) { /* sidewalk */ + Vector3 dir = lanes[k].xform_m1.origin - + lanes[k].xform1.origin; + float dst = dir.length(); + dir.normalize(); + assert(road_meshes.has( + "common/sidewalk_start")); + assert(road_meshes.has( + "common/sidewalk_sideroad")); + assert(road_meshes["common/sidewalk_start"] + .arrays.size() > 0); + assert(road_meshes["common/sidewalk_sideroad"] + .arrays.size() > 0); + Transform xm1 = + lanes[k].xform1.interpolate_with( + lanes[k].xform_m1, + (lanes[k].l_seg1[0]) / + dst); + Transform xm2 = + lanes[k].xform1.interpolate_with( + lanes[k].xform_m1, + (lanes[k].l_seg1[0] + + sideroad_l) / + dst); + float la = Math::lerp( + lanes[k].l_seg2[0], + lanes[k].l_seg2[1], + lanes[k].l_seg2[0] / dst); + float lb = + Math::lerp(lanes[k].l_seg2[0], + lanes[k].l_seg2[1], + (lanes[k].l_seg2[0] + + sideroad_l) / + dst); + build_segment( + lanes[k].xform1, xm1, + lanes[k].l_seg1[0], la, + road_meshes + ["common/sidewalk_sideroad"] + .arrays[h], + out_surfaces[h], 0.0f); + build_segment( + xm1, xm2, la, lb, + road_meshes + ["common/sidewalk_start"] + .arrays[h], + out_surfaces[h], 0.0f); + build_segment(xm2, lanes[k].xform_m1, + lb, lanes[k].l_seg1[1], + surfaces[h], + out_surfaces[h], 0.0f); + } else if (k == params.nlanes + 1 && + mside1.lot > 0) { /* lot */ + // assert(mside1.lot_depth_eff >= 0.98f); + build_split_segment( + lanes[k].xform1, + lanes[k].xform_m1, + mside1.lot_depth_eff, + MIN(mside1.lot_depth_eff, + mside2.lot_depth_eff), // mside1.lot_depth_eff, + // get_lot_depth(wedge), + surfaces[h], out_surfaces[h], + 0.0f, + get_split_level(wedge) + 1); + + } else if (k <= params.nlanes) /* normal lane */ + build_segment(lanes[k].xform1, + lanes[k].xform_m1, + lanes[k].l_seg1[0], + lanes[k].l_seg1[1], + surfaces[h], + out_surfaces[h], 0.0f); + if (k == params.nlanes && + mside2.lot > 0) { /* sidewalk */ + Vector3 dir = lanes[k].xform2.origin - + lanes[k].xform_m2.origin; + float dst = dir.length(); + dir.normalize(); + assert(road_meshes.has( + "common/sidewalk_end")); + assert(road_meshes.has( + "common/sidewalk_sideroad")); + assert(road_meshes["common/sidewalk_sideroad"] + .arrays.size() > 0); + assert(road_meshes["common/sidewalk_end"] + .arrays.size() > 0); + Transform xm1 = + lanes[k].xform_m2.interpolate_with( + lanes[k].xform2, + 1.0f - (lanes[k].l_seg2 + [2] + + sideroad_l) / + dst); + Transform xm2 = + lanes[k].xform_m2.interpolate_with( + lanes[k].xform2, + 1.0f - sideroad_l / + dst); + float la = Math::lerp( + lanes[k].l_seg2[1], + lanes[k].l_seg2[2], + 1.0f - (lanes[k].l_seg2[2] + + sideroad_l) / + dst); + float lb = Math::lerp( + lanes[k].l_seg2[1], + lanes[k].l_seg2[2], + 1.0f - sideroad_l / dst); + build_segment(lanes[k].xform_m2, xm1, + lanes[k].l_seg2[1], la, + surfaces[h], + out_surfaces[h], 0.0f); + build_segment( + xm1, xm2, la, lb, + road_meshes["common/sidewalk_end"] + .arrays[h], + out_surfaces[h], 0.0f); + build_segment( + xm2, lanes[k].xform2, lb, + lanes[k].l_seg1[2], + road_meshes + ["common/sidewalk_sideroad"] + .arrays[h], + out_surfaces[h], 0.0f); + } else if (k == params.nlanes + 1 && + mside2.lot > 0) { /* lot */ + print_line( + "m2: " + + String::num( + mside2.lot_depth_eff)); + // assert(mside2.lot_depth_eff >= 0.98f); + build_split_segment( + lanes[k].xform_m2, + lanes[k].xform2, 100.0f, + 100.0f, // get_lot_depth(wedge), + // mside2.lot_depth_eff, + surfaces[h], out_surfaces[h], + 0.0f, get_split_level(wedge)); + } else if (k <= params.nlanes) /* normal lane */ + build_segment(lanes[k].xform_m2, + lanes[k].xform2, + lanes[k].l_seg2[1], + lanes[k].l_seg2[2], + surfaces[h], + out_surfaces[h], 0.0f); } segment_count++; } } Ref build_road(const std::vector &wedges, const String ¢er, const String &mid, - const String &edge) + const String &edge, const String &lot) { int i; std::vector out_surfaces; @@ -1125,7 +2136,7 @@ public: // Transform mesh_xform = // Transform().rotated(Vector3(0, 1, 0), Math_PI); for (i = 0; i < (int)wedges.size(); i++) { - build_wedge_mesh(wedges[i], center, mid, edge, + build_wedge_mesh(wedges[i], center, mid, edge, lot, out_surfaces, out_materials); } Ref new_mesh; @@ -1155,9 +2166,9 @@ public: RoadLinesProcessing *r = RoadLinesProcessing::get_singleton(); clear_road_meshes(); for (i = 0; i < (int)r->nodes.size(); i++) { - Ref mesh = - build_road(r->wedges[i], "common/center", - "common/mid", "common/sidewalk"); + Ref mesh = build_road( + r->wedges[i], "common/center", "common/mid", + "common/sidewalk", "common/lot"); MeshInstance *mi = memnew(MeshInstance); mi->hide(); mi->set_mesh(mesh); @@ -1191,7 +2202,6 @@ RoadMeshProcessing *RoadMeshProcessing::singleton; void RoadProcessing::road_setup(Node *target, int debug_flags) { - RoadLinesProcessing::get_singleton()->create_structures(); RoadLinesProcessing::get_singleton()->set_debug_flags(debug_flags); RoadLinesProcessing::get_singleton()->road_setup(); RoadMeshProcessing::get_singleton()->create_road_meshes(target); @@ -1216,6 +2226,17 @@ void RoadProcessing::load_data() RoadMeshProcessing::get_singleton()->load_road_mesh( "common", "sidewalk", config.get_value("road", "sidewalk_mesh")); + RoadMeshProcessing::get_singleton()->load_road_mesh( + "common", "sidewalk_start", + config.get_value("road", "sidewalk_start_mesh")); + RoadMeshProcessing::get_singleton()->load_road_mesh( + "common", "sidewalk_end", + config.get_value("road", "sidewalk_end_mesh")); + RoadMeshProcessing::get_singleton()->load_road_mesh( + "common", "sidewalk_sideroad", + config.get_value("road", "sidewalk_sideroad_mesh")); + RoadMeshProcessing::get_singleton()->load_road_mesh( + "common", "lot", config.get_value("road", "lot_mesh")); } void RoadDebug::_notification(int which) diff --git a/src/modules/stream/ui/building_layout_graph_ui.cpp b/src/modules/stream/ui/building_layout_graph_ui.cpp index 04dc9c9..5de2063 100644 --- a/src/modules/stream/ui/building_layout_graph_ui.cpp +++ b/src/modules/stream/ui/building_layout_graph_ui.cpp @@ -7,7 +7,6 @@ void BuildingLayoutGraphUI::menu_pressed(int id, Control *button, const String &path) { assert(button); - print_line(itos(id)); print_line(path); switch (id) { case 100: @@ -459,7 +458,6 @@ static void *__PPP_ptr2 = nullptr; void BuildingLayoutGraphUI::command_entered(int index, Control *item, const String &path) { - print_line(itos(index)); flecs::world ecs = BaseData::get_singleton()->get(); flecs::entity e = ecs.lookup(path.ascii().ptr()); assert(e.is_valid());