// 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);
}
}
}