public virtual void CreateRoadsFromGrid() { Debug.Log("PerlinCityGenerator: Creating roads from grid"); List <Node> vertices = polyGrid.GetVertices(); List <GridFace> faces = polyGrid.GetFaces(); Dictionary <Vector2Int, bool> connectionPoints = new Dictionary <Vector2Int, bool>(); //draw connections between verts foreach (Node node in vertices) { node.GetConnectionLines(ref connectionPoints); } //draw connections between face verts for (int i = 0; i < faces.Count; i++) { int a = Random.value > 0.5f ? 0 : 3; int b = Random.value > 0.5f ? 1 : 2; Vector3 midPoint = Framework.Util.MathOps.Midpoint(faces[i].GetVertex(a).GetPosition(), faces[i].GetVertex(b).GetPosition()); //TODO Check if there is a building here before drawing //faces[i].GetConnectionLine(ref connectionPoints, faces[i].GetPosition(), midPoint); List <Node> verts = faces[i].GetVertices(); foreach (Node node in verts) { node.GetConnectionLines(ref connectionPoints); } } roadPainter.DrawRoads(ref connectionPoints); roadPainter.ApplyAlphaBlend(); }
public void ShowGridProps() { EditorGUILayout.BeginVertical(); showGridVertices = EditorGUILayout.Foldout(showGridVertices, "Vertices"); if (showGridVertices) { vertScrollPos = EditorGUILayout.BeginScrollView(vertScrollPos); List <Node> verts = polyGrid.GetVertices(); GUI.enabled = false; for (int i = 0; i < verts.Count; i++) { string str = "Vertex " + i; EditorGUILayout.Vector2Field(str, verts[i].GetPosition()); EditorGUILayout.IntField("connections", verts[i].NumConnections()); } GUI.enabled = true; EditorGUILayout.EndScrollView(); } showGridFaces = EditorGUILayout.Foldout(showGridFaces, "Faces"); if (showGridFaces) { faceScrollPos = EditorGUILayout.BeginScrollView(faceScrollPos); GUI.enabled = false; List <GridFace> faces = polyGrid.GetFaces(); for (int i = 0; i < faces.Count; i++) { string str = "Face " + i; EditorGUILayout.Vector2Field(str, faces[i].GetPosition()); EditorGUILayout.IntField("vertices", faces[i].NumVertices()); } GUI.enabled = true; EditorGUILayout.EndScrollView(); } EditorGUILayout.EndHorizontal(); }