/// <summary> /// Default constructor /// </summary> /// <param name="originalTrItem">The original track item that we are representing for drawing</param> public DrawableSignalItem(TrackItem originalTrItem) : base(originalTrItem) { this.Description = "signal"; this.isNormal = true; // default value SignalItem originalSignalItem = originalTrItem as SignalItem; this.direction = originalSignalItem.Direction == 0 ? Traveller.TravellerDirection.Forward : Traveller.TravellerDirection.Backward; this.signalType = originalSignalItem.SignalType; }
/// <summary> /// TargetExactlyReached: if train on board, it can exit the turntable /// </summary> /// public void TargetExactlyReached() { Traveller.TravellerDirection direction = Traveller.TravellerDirection.Forward; direction = SaveConnected ^ !MyTrackNodesOrientation[ConnectedTrackEnd]? direction : (direction == Traveller.TravellerDirection.Forward ? Traveller.TravellerDirection.Backward : Traveller.TravellerDirection.Forward); GoToTarget = false; if (TrainsOnMovingTable.Count == 1) { var train = TrainsOnMovingTable[0].Train; if (train.ControlMode == Train.TRAIN_CONTROL.TURNTABLE) { train.ReenterTrackSections(MyTrackNodesIndex[ConnectedTrackEnd], MyTrVectorSectionsIndex[ConnectedTrackEnd], FinalFrontTravellerXNALocation, FinalRearTravellerXNALocation, direction); } } }