コード例 #1
0
    public Traffic(EntryRoad entryRoad, ExitRoad exitRoad, float trafficVolume)
    {
        this.entryRoad     = entryRoad;
        this.exitRoad      = exitRoad;
        this.trafficVolume = trafficVolume;

        Enlist();
    }
コード例 #2
0
    public EntryRoad BuildEntryRoad(Vector3 entryCoordinates)
    {
        Grid startGrid, endGrid;

        GetEntryRoadStartEndGrids(entryCoordinates, out startGrid, out endGrid);

        EntryRoad entryRoad = Instantiate(roadFactory.GetEntryRoadPrefab(),
                                          startGrid.transform.position, startGrid.transform.rotation,
                                          SiteManager.Instance.roadManager.transform);

        entryRoad.StartGrid = startGrid;
        entryRoad.EndGrid   = endGrid;

        SplitIntersectingRoads(entryRoad);

        return(entryRoad);
    }
コード例 #3
0
    public void RemoveEntryRoad(EntryRoad entryRoad)
    {
        // Make a shallow copy of trafficsStartingAt
        List <Traffic> trafficsStartingAtCopy = new List <Traffic>(trafficsStartingAt[entryRoad]);

        foreach (Traffic traffic in trafficsStartingAtCopy)
        {
            trafficsStartingAt[traffic.EntryRoad].Remove(traffic);

            trafficsEndingAt[traffic.ExitRoad].Remove(traffic);
            traffic.ExitRoad.accessPointInfographic.RemoveTraffic(traffic);
            if (trafficsEndingAt[traffic.ExitRoad].Count == 0)
            {
                traffic.ExitRoad.Demolish();
            }
        }
    }
コード例 #4
0
 public void RemoveEntryRoad(EntryRoad entryRoad)
 {
     entryRoadsAt.Remove(entryRoad.EndGrid);
 }
コード例 #5
0
 public void AddEntryRoad(EntryRoad entryRoad)
 {
     entryRoadsAt[entryRoad.EndGrid] = entryRoad;
 }