@@ -17,7 +17,7 @@ public TsMapRenderer(TsMapper mapper, MapPalette palette)
1717 _palette = palette ;
1818 }
1919
20- private static PointF RotatePoint ( float x , float z , float angle , float rotX , float rotZ )
20+ public static PointF RotatePoint ( float x , float z , float angle , float rotX , float rotZ )
2121 {
2222 var s = Math . Sin ( angle ) ;
2323 var c = Math . Cos ( angle ) ;
@@ -159,33 +159,60 @@ public void Render(Graphics g, Rectangle clip, float baseScale, PointF pos)
159159 drawingQueue . Add ( prefabLook ) ;
160160 continue ;
161161 }
162-
162+ // This part is now made by prefab curves
163+ /*
163164 foreach (var neighbourPointIndex in mapPoint.Neighbours) // TODO: Fix connection between road segments
164165 {
165- if ( pointsDrawn . Contains ( neighbourPointIndex ) ) continue ;
166- var neighbourPoint = prefabItem . Prefab . MapPoints [ neighbourPointIndex ] ;
166+ if (pointsDrawn.Contains(neighbourPointIndex)) continue;
167+ var neighbourPoint = prefabItem.Prefab.MapPoints[neighbourPointIndex];
167168
168- if ( ( mapPoint . Hidden || neighbourPoint . Hidden ) && prefabItem . Prefab . PrefabNodes . Count + 1 <
169- prefabItem . Prefab . MapPoints . Count ) continue ;
169+ if ((mapPoint.Hidden || neighbourPoint.Hidden) && prefabItem.Prefab.PrefabNodes.Count + 1 <
170+ prefabItem.Prefab.MapPoints.Count) continue;
170171
171- var newPointStart = RotatePoint ( prefabStartX + mapPoint . X ,
172- prefabStartZ + mapPoint . Z , rot , originNode . X , originNode . Z ) ;
172+ var newPointStart = RotatePoint(prefabStartX + mapPoint.X,
173+ prefabStartZ + mapPoint.Z, rot, originNode.X, originNode.Z);
173174
174- var newPointEnd = RotatePoint ( prefabStartX + neighbourPoint . X ,
175- prefabStartZ + neighbourPoint . Z , rot , originNode . X , originNode . Z ) ;
176-
177- TsPrefabLook prefabLook = new TsPrefabRoadLook ( )
178- {
179- Color = _palette . PrefabRoad ,
180- ZIndex = 4 ,
181- Width = 10f * scaleX ,
182- } ;
175+ var newPointEnd = RotatePoint(prefabStartX + neighbourPoint.X,
176+ prefabStartZ + neighbourPoint.Z, rot, originNode.X, originNode.Z);
177+
178+ TsPrefabLook prefabLook = new TsPrefabRoadLook()
179+ {
180+ Color = _palette.PrefabRoad,
181+ ZIndex = 4,
182+ Width = 10f * scaleX,
183+ };
183184
184- prefabLook . AddPoint ( ( newPointStart . X - startX ) * scaleX , ( newPointStart . Y - startY ) * scaleY ) ;
185- prefabLook . AddPoint ( ( newPointEnd . X - startX ) * scaleX , ( newPointEnd . Y - startY ) * scaleY ) ;
185+ prefabLook.AddPoint((newPointStart.X - startX) * scaleX, (newPointStart.Y - startY) * scaleY);
186+ prefabLook.AddPoint((newPointEnd.X - startX) * scaleX, (newPointEnd.Y - startY) * scaleY);
186187
187- drawingQueue . Add ( prefabLook ) ;
188+ drawingQueue.Add(prefabLook);
188189 }
190+ */
191+ }
192+
193+ for ( int i = 0 ; i < prefabItem . Prefab . PrefabCurves . Count ; i ++ )
194+ {
195+ var newPointStart = RotatePoint ( prefabStartX + prefabItem . Prefab . PrefabCurves [ i ] . start_X , prefabStartZ + prefabItem . Prefab . PrefabCurves [ i ] . start_Z , rot , originNode . X , originNode . Z ) ;
196+ var newPointEnd = RotatePoint ( prefabStartX + prefabItem . Prefab . PrefabCurves [ i ] . end_X , prefabStartZ + prefabItem . Prefab . PrefabCurves [ i ] . end_Z , rot , originNode . X , originNode . Z ) ;
197+ var color = _palette . PrefabRoad ;
198+ var zind = 4 ;
199+
200+ if ( ( _mapper . PrefabNav . ContainsKey ( prefabItem ) && _mapper . PrefabNav . ContainsKey ( prefabItem ) && _mapper . PrefabNav [ prefabItem ] . Contains ( prefabItem . Prefab . PrefabCurves [ i ] ) ) || _mapper . RoutePrefabs . Contains ( prefabItem ) ) {
201+ color = _palette . NavColor ;
202+ zind = 1000 ;
203+ }
204+
205+ TsPrefabLook prefabLook = new TsPrefabRoadLook ( )
206+ {
207+ Color = color ,
208+ Width = 10f * scaleX ,
209+ ZIndex = zind
210+ } ;
211+
212+ prefabLook . AddPoint ( ( newPointStart . X - startX ) * scaleX , ( newPointStart . Y - startY ) * scaleY ) ;
213+ prefabLook . AddPoint ( ( newPointEnd . X - startX ) * scaleX , ( newPointEnd . Y - startY ) * scaleY ) ;
214+
215+ drawingQueue . Add ( prefabLook ) ;
189216 }
190217 }
191218
@@ -240,7 +267,10 @@ public void Render(Graphics g, Rectangle clip, float baseScale, PointF pos)
240267
241268 var roadWidth = road . RoadLook . GetWidth ( ) * scaleX ;
242269
243- g . DrawCurve ( new Pen ( _palette . Road , roadWidth ) , points . ToArray ( ) ) ;
270+ var color = _palette . Road ;
271+ if ( _mapper . RouteRoads . Contains ( road ) ) color = _palette . NavColor ;
272+
273+ g . DrawCurve ( new Pen ( color , roadWidth ) , points . ToArray ( ) ) ;
244274 }
245275
246276
0 commit comments