public void SetTrainTrackHasChanged(TrainTrack track, bool changed) { if (ProjectTreeView.Nodes.Count > 0) { var pnode = ProjectTreeView.Nodes[0]; var trnode = GetChildTreeNode(pnode, "Trains"); if (trnode == null) { return; } string changestr = changed ? "*" : ""; for (int i = 0; i < trnode.Nodes.Count; i++) { var tnode = trnode.Nodes[i]; if (tnode.Tag == track) { string name = track.Name; if (track.RpfFileEntry != null) { name = track.RpfFileEntry.Name; } tnode.Text = changestr + name; break; } } } }
private void LoadTrainTrackTreeNodes(TrainTrack track, TreeNode node) { if (track == null) { return; } if (!string.IsNullOrEmpty(node.Name)) { return; //named nodes are eg Nodes } node.Nodes.Clear(); if ((track.Nodes != null) && (track.Nodes.Count > 0)) { var nodesnode = node.Nodes.Add("Nodes (" + track.Nodes.Count.ToString() + ")"); nodesnode.Name = "Nodes"; nodesnode.Tag = track; var nodes = track.Nodes; for (int i = 0; i < nodes.Count; i++) { var ynode = nodes[i]; var tnode = nodesnode.Nodes.Add(ynode.ToString()); tnode.Tag = ynode; } } }
public void SetTrainTrack(TrainTrack track) { Track = track; Tag = track; UpdateFormTitle(); UpdateTrainTrackUI(); waschanged = track?.HasChanged ?? false; }
public bool ContainsTrainTrack(TrainTrack track) { foreach (var f in TrainsFiles) { if (f == track) { return(true); } } return(false); }
/// <summary> /// Initilizes trains , tracks, stations, speeds, distances etc /// </summary> private static void InitializeData() { try { // Randomly generating different but constant speeds, shipment capacity & track distances. Random randomNumberGenerator = new Random(); for (int i = 0; i < _noOfStations; i++) { _distances[i] = randomNumberGenerator.Next(3, 11) * 10; } for (int i = 0; i < _noOfTrains; i++) { _speeds[i] = randomNumberGenerator.Next(3, 25) * 10; } // Global cache var cache = LookupCache.GetInstance(); // Initilize train tracks & trains Dictionary <string, TrainTrack> _dicTracks = new Dictionary <string, TrainTrack>(); for (int i = 1; i <= _noOfStations; i++) { Station station = new Station(i, "Station" + i.ToString()); cache.AddStation(station); if (i == _noOfStations) { String key = "Station" + i.ToString() + "ToStation" + (i + 1).ToString(); TrainTrack track = new TrainTrack(i, 1, _distances[i - 1]); _dicTracks.Add(key, track); } else { String key = "Station" + i.ToString() + "To" + "Station1"; TrainTrack track = new TrainTrack(i, 1 + i, _distances[i - 1]); _dicTracks.Add(key, track); } } // adding train tracks to cache cache.AddTracks(_dicTracks); for (int i = 1; i <= _noOfTrains; i++) { Train train = new Train(i, "Train" + i.ToString(), _shipmentCapacity[i - 1], _speeds[i - 1]); cache.AddTrain(train); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public TrainTrack AddTrainsFile(string filename) { TrainTrack track = new TrainTrack(); track.RpfFileEntry = new RpfResourceFileEntry(); track.RpfFileEntry.Name = new FileInfo(filename).Name; track.FilePath = GetFullFilePath(filename); track.Name = track.RpfFileEntry.Name; if (!AddTrainsFile(track)) { return(null); } return(track); }
public void RemoveTrainsFile(TrainTrack track) { if (track == null) { return; } var relpath = GetRelativePath(track.FilePath); if (string.IsNullOrEmpty(relpath)) { relpath = track.Name; } TrainsFiles.Remove(track); TrainsFilenames.Remove(relpath); HasChanged = true; }
public bool AddTrainsFile(TrainTrack track) { string relpath = GetRelativePath(track.FilePath); if (string.IsNullOrEmpty(relpath)) { relpath = track.Name; } if (TrainsFilenames.Contains(relpath)) { return(false); } TrainsFilenames.Add(relpath); TrainsFiles.Add(track); return(true); }
public void Start() { Random randomStationNumberGenerator = new Random(); // Start trains at random stations foreach (var train in LookupCache.GetInstance().GetTrains()) { int stationId = randomStationNumberGenerator.Next(1, LookupCache.GetInstance().StationCount() + 1); TrainTrack trainTrack = LookupCache.GetInstance().GetNextTrack(stationId); TrainCurrentLocation trainCurrentLocation = new TrainCurrentLocation(); trainCurrentLocation.Train = train; trainCurrentLocation.Track = trainTrack; trainCurrentLocation.DistanceLeft = trainCurrentLocation.Track.TrackLength; trainCurrentLocation.Train.CurrentRunningStatus = TrainRunningStatus.Waiting; _lstTrainsToStart.Add(trainCurrentLocation); } }
public TreeNode FindTrainTrackTreeNode(TrainTrack track) { if (ProjectTreeView.Nodes.Count <= 0) { return(null); } var projnode = ProjectTreeView.Nodes[0]; var trainsnode = GetChildTreeNode(projnode, "Trains"); if (trainsnode == null) { return(null); } for (int i = 0; i < trainsnode.Nodes.Count; i++) { var trainnode = trainsnode.Nodes[i]; if (trainnode.Tag == track) { return(trainnode); } } return(null); }