//Creates Shallow Copy Based Off Unique WaypointSystem
 //WaypointNode allows for unique meta data to help with AStar
 public WaypointGraph(WaypointSystem system, Dungeon dg)
 {
     dungeon        = dg;
     waypointSystem = system;
     nodesByRoom    = new List <List <WaypointNode> >();
     foreach (List <Waypoint> roomWaypoints in system.waypointsByRoom)
     {
         List <WaypointNode> roomNodes = new List <WaypointNode>();
         foreach (Waypoint wp in roomWaypoints)
         {
             roomNodes.Add(new WaypointNode(wp));
         }
         nodesByRoom.Add(roomNodes);
     }
 }
 //Custom Waypoint Graph
 public void SetWaypointGraph(WaypointSystem waypointSystem, Dungeon dg)
 {
     waypointGraph = new WaypointGraph(waypointSystem, dg);
 }