#if UNITY_EDITOR namespace Gley.TrafficSystem.Internal { public static class IntersectionExtensionMethods { /// /// Converts editor priority intersection to runtime priority intersection /// /// /// /// public static PriorityIntersectionData ToPlayModeIntersection(this PriorityIntersectionSettings priorityIntersection, WaypointSettings[] allWaypoints) { return new PriorityIntersectionData(priorityIntersection.name, priorityIntersection.enterWaypoints.ToPriorityStopWaypointsArray(allWaypoints), priorityIntersection.exitWaypoints.ToListIndex(allWaypoints)); } public static PriorityCrossingData ToPlayModeIntersection(this PriorityCrossingSettings priorityIntersection, WaypointSettings[] allWaypoints) { return new PriorityCrossingData(priorityIntersection.name, priorityIntersection.enterWaypoints.ToPriorityStopWaypointsArray(allWaypoints), priorityIntersection.exitWaypoints.ToListIndex(allWaypoints)); } /// /// Converts editor traffic lights intersection to runtime traffic lights intersection /// /// /// /// public static TrafficLightsIntersectionData ToPlayModeIntersection(this TrafficLightsIntersectionSettings trafficLightsIntersection, WaypointSettings[] allWaypoints) { return new TrafficLightsIntersectionData( trafficLightsIntersection.name, trafficLightsIntersection.stopWaypoints.ToLightsStopWaypointsArray(allWaypoints), trafficLightsIntersection.greenLightTime, trafficLightsIntersection.yellowLightTime, trafficLightsIntersection.exitWaypoints.ToListIndex(allWaypoints) ); } public static TrafficLightsCrossingData ToPlayModeIntersection(this TrafficLightsCrossingSettings trafficLightsIntersection, WaypointSettings[] allWaypoints) { return new TrafficLightsCrossingData( trafficLightsIntersection.name, trafficLightsIntersection.stopWaypoints.ToLightsStopWaypointsArray(allWaypoints), trafficLightsIntersection.greenLightTime, trafficLightsIntersection.yellowLightTime, trafficLightsIntersection.redLightTime, trafficLightsIntersection.exitWaypoints.ToListIndex(allWaypoints) ); } } } #endif