///////////////////////////////////////////////// /// ZONE AVAL ///////////////////////////////////////////////// /// <summary> /// Determine et modifie la zone aval d'un train. /// </summary> /// <param name="train">Train à modifer</param> public static void determinerZA(CTrain train) { if (train.vitesseTrain == 0) return; CVMRegulateurComposeur res = (CVMRegulateurComposeur)Application.Current.FindResource("RessourcesMV"); foreach (CItineraire itineraire in res.listeItineraire) { // Si la loco principale se situe sur le point de départ d'un itinéraire // qu'elle va en direction du prochain aiguillage, // et que ce soit en marche avant ou marche arrière if ( train.listeLocos[0].blockid == itineraire.bka && ((itineraire.bkaside == itineraire.bkbside) | (itineraire.bkbside == train.listeLocos[0].blockEnterSide) | train.avanceRecul)) { // Si les aiguillages sur l'itinéraire sont dans la bonne position if (CLocalisation._itineraireCorrect(itineraire.listeAiguillage)) { CZoneDetection zone = CLocalisation.trouverZone(itineraire.bkb); // Si la zone est innocupée, on l'affecte au train train.zoneAval = (zone.locoID == "") ? zone : null; // Si la zone est occupée, on sort quand même car c'est celle vers laquelle se dirige le train return; } } else if ( (train.listeLocos[0].blockid == itineraire.bkb && ((itineraire.bkaside == itineraire.bkbside) | (itineraire.bkaside == train.listeLocos[0].blockEnterSide) | !train.avanceRecul))) { // Si les aiguillages sur l'itinéraire sont dans la bonne position if (CLocalisation._itineraireCorrect(itineraire.listeAiguillage)) { CZoneDetection zone = CLocalisation.trouverZone(itineraire.bka); // Si la zone est innocupée, on l'affecte au train train.zoneAval = (zone.locoID == "") ? zone : null; // Si la zone est occupée, on sort quand même car c'est celle vers laquelle se dirige le train return; } } } }
private void BTN_Valider_Click(object sender, RoutedEventArgs e) { if (this.TB_Nom.Text == "") { MessageBox.Show("Veuillez renseigner un nom pour le train"); return; } else if (this.CBB_zones.SelectedItem == null) { MessageBox.Show("Veuillez renseigner une zone pour le train"); return; } CTrain nouveauTrain = new CTrain(TB_Nom.Text); nouveauTrain.listeZoneDetection.Add(CLocalisation.trouverZone((string)CBB_zones.Items.CurrentItem)); res.listeTrain.Add(nouveauTrain); this._gestionTrain.creerTrain(nouveauTrain); this.Close(); }
// trains \\ public void creerTrain(CTrain nouveauTrain) { }