Beispiel #1
0
        //===================================================================== INITIALIZE
        public Link(Station inStation, Station outStation, bool isTunnel, int trackCount, Point[] nodes)
        {
            InStation = inStation;
            OutStation = outStation;
            IsTunnel = isTunnel;

            for (int i = 1; i <= trackCount; i++)
                _tracks.Add(i, new Track(i, this));

            Nodes = nodes;
        }
Beispiel #2
0
 //#==================================================================== FUNCTIONS
 public static Color GetStationColor(Station station)
 {
     return station.IsTunnel ? LINK_GOOD_TUNNEL : LINK_GOOD;
 }
 private void ConnectTracks(Station origin, Station destination, int oPlatformStart, int dPlatformStart, int twoWayCount)
 {
     for (int i = 0; i < twoWayCount; i++)
     {
         int start = i * 2 + 1 + dPlatformStart;
         int end = i * 2 + 1 + oPlatformStart;
         ConnectTracks(destination, origin, start + "/" + Math.Min(start, end) + "/" + end);
         start = i * 2 + 2 + oPlatformStart;
         end = i * 2 + 2 + dPlatformStart;
         ConnectTracks(origin, destination, start + "/" + Math.Min(start, end) + "/" + end);
     }
 }
 private void ConnectTracks(Station origin, Station destination, string connections)
 {
     string[] splitConnections = connections.Split(' ');
     for (int i = 0; i < splitConnections.Length; i++)
     {
         Track track = origin.Links[destination.Name].GetTrack(GetTrack(splitConnections[i]));
         int[] originTracks = GetOrigins(splitConnections[i]);
         int[] destTracks = GetDestinations(splitConnections[i]);
         foreach (int destTrack in destTracks)
             track.AddDestination(destination.GetPlatform(destTrack));
         foreach (int originTrack in originTracks)
             origin.GetPlatform(originTrack).AddDestination(track);
     }
 }
Beispiel #5
0
 //#==================================================================== FUNCTIONS
 public static int GetStationRadius(Station station)
 {
     return 200 + station.PlatformCount * 25;
 }