Example #1
0
    public Traffic(EntryRoad entryRoad, ExitRoad exitRoad, float trafficVolume)
    {
        this.entryRoad     = entryRoad;
        this.exitRoad      = exitRoad;
        this.trafficVolume = trafficVolume;

        Enlist();
    }
Example #2
0
    public ExitRoad BuildExitRoad(Vector3 exitCoordinates)
    {
        Grid startGrid, endGrid;

        GetExitRoadStartEndGrids(exitCoordinates, out startGrid, out endGrid);

        ExitRoad exitRoad = Instantiate(roadFactory.GetExitRoadPrefab(),
                                        startGrid.transform.position, startGrid.transform.rotation,
                                        SiteManager.Instance.roadManager.transform);

        exitRoad.StartGrid = startGrid;
        exitRoad.EndGrid   = endGrid;

        SplitIntersectingRoads(exitRoad);

        return(exitRoad);
    }
    public void RemoveExitRoad(ExitRoad exitRoad)
    {
        // Make a shallow copy of trafficsEndingAt
        List <Traffic> trafficsEndingAtCopy = new List <Traffic>(trafficsEndingAt[exitRoad]);

        foreach (Traffic traffic in trafficsEndingAtCopy)
        {
            trafficsStartingAt[traffic.EntryRoad].Remove(traffic);
            traffic.EntryRoad.accessPointInfographic.RemoveTraffic(traffic);
            if (trafficsStartingAt[traffic.EntryRoad].Count == 0)
            {
                traffic.EntryRoad.Demolish();
            }

            trafficsEndingAt[traffic.ExitRoad].Remove(traffic);
        }
    }
Example #4
0
 public void RemoveExitRoad(ExitRoad exitRoad)
 {
     exitRoadsAt.Remove(exitRoad.StartGrid);
 }
Example #5
0
 public void AddExitRoad(ExitRoad exitRoad)
 {
     exitRoadsAt[exitRoad.StartGrid] = exitRoad;
 }