public static bool IsIntersectionReached(this Vehicle vehicle, out TramIntersection intersection) { var node1 = vehicle.Position.Node1; var node2 = vehicle.Position.Node2; if (node1 != null && node1.Type == NodeType.TramCross && !node1.Intersection.Equals(vehicle.LastIntersection)) { intersection = node1.Intersection; return(true); } else if (node2 != null && node2.Type == NodeType.TramCross && !node2.Intersection.Equals(vehicle.LastIntersection)) { intersection = node2.Intersection; return(true); } intersection = null; return(false); }
private void DequeueIntersection(TramIntersection intersection) { intersection.CurrentVehicle = intersection.Vehicles.Any() ? intersection.Vehicles.Dequeue() : null; }