// Description: Changes links to roads and nodes to action points // PRE: Arrays nodes and links contain nonzero number of node and link gameobjects // POST: Log displays the number of nodes and links that have been transformed to action points and roads private void ChangeBuildViewObjectsToSimViewObjects() { Debug.Log("Number of nodes compiled into Action Points: " + _nodes.Length); Debug.Log("Number of links compiled into Roads: " + _links.Length); foreach (GameObject node in _nodes) { Destroy(node.GetComponent <BuildViewNode>()); ActionPointController ap = node.AddComponent <ActionPointController>(); ap.InitializeActionPoint(); node.name = "Action Point"; Debug.Log("This node is a source: " + node.GetComponent <Node>().IsSource.ToString()); } foreach (GameObject link in _links) { Destroy(link.GetComponent <BuildViewLink>()); RoadController rc = link.AddComponent <RoadController>(); rc.InitializeRoad(); link.name = "Road"; } foreach (BuildViewSelectionHandler.ConnectedNodes cn in _connectedNodes.Keys) { DestinationActionPointAndRoad dapar = new DestinationActionPointAndRoad(cn.destination.gameObject, (GameObject)_connectedNodes[cn]); GameObject origin = cn.origin.gameObject; if (!adjacencyList.ContainsKey(origin)) { List <DestinationActionPointAndRoad> originConnections = new List <DestinationActionPointAndRoad>(); originConnections.Add(dapar); adjacencyList.Add(origin, originConnections); } else { (adjacencyList[origin] as List <DestinationActionPointAndRoad>).Add(dapar); } } }