public void StartDriving(bool isReentering = false)
        {
            if (trainHandler != null && trainHandler.Exists && isReentering)
            {
                trainHandler.SpeedMPH = 88;
                _isReentryOn          = true;
                return;
            }

            trainHandler = TrainManager.CreateInvisibleTrain(Vehicle, _direction);

            if (!(trainHandler.Train.Heading >= Vehicle.Heading - 45 && trainHandler.Train.Heading <= Vehicle.Heading + 45))
            {
                _direction = !_direction;
                trainHandler.DeleteTrain();
                trainHandler = TrainManager.CreateInvisibleTrain(Vehicle, _direction);
            }

            trainHandler.IsAccelerationOn   = true;
            trainHandler.IsAutomaticBrakeOn = true;

            trainHandler.SetCollision(false);

            trainHandler.SetToAttach(Vehicle, new Vector3(0, 4.28f, 0), 1, 0); //new Vector3(0, 4.48f, 0)

            //trainHandler.CruiseSpeedMPH = 1;

            trainHandler.SetPosition(Vehicle.Position);

            trainHandler.OnVehicleAttached += TrainHandler_OnVehicleAttached;
            trainHandler.OnTrainDeleted    += TrainHandler_OnTrainDeleted;

            _isReentryOn = isReentering;
        }
示例#2
0
 public void OnEnable()
 {
     if (base.target != null)
     {
         this._target = (TrainHandler)base.target;
     }
 }
示例#3
0
 public void RegisterTrainHandler(TrainHandler trainHandler)
 {
     if (this.TrainHandler != trainHandler)
     {
         this.TrainHandler = trainHandler;
     }
 }
示例#4
0
 public TrainHandlerTransitEventData(Train train, TrainHandler trainHandler, Hand fromHand, Hand toHand)
 {
     Train        = train;
     TrainHandler = trainHandler;
     FromHand     = fromHand;
     ToHand       = toHand;
 }
示例#5
0
    public bool IsWinStation(TrainHandler box)
    {
        if (this.FailStations == null)
        {
            return(true);
        }

        return(IsEndStation(box) && !IsFailStation(box));
    }
示例#6
0
    public bool IsFailStation(TrainHandler box)
    {
        if (this.FailStations == null)
        {
            return(false);
        }

        return(this.FailStations.Contains(box));
    }
示例#7
0
    public bool IsEndStation(TrainHandler box)
    {
        if (this.EndStations == null)
        {
            Debug.LogWarning("There is no end station !!!!");
            return(false);
        }

        return(this.EndStations.Contains(box));
    }
示例#8
0
    public bool IsStartStation(TrainHandler box)
    {
        if (this.StartStation == null)
        {
            Debug.LogWarning("There is no start station !!!!");
            return(false);
        }

        return(this.StartStation == box);
    }
示例#9
0
        public void UnregisterTrainHandler(TrainHandler trainHandler)
        {
            if (this.TrainHandler != null && this.TrainHandler.Tracks.Contains(this))
            {
                this.TrainHandler.UnregisterTrack(this);
            }

            if (this.TrainHandler == trainHandler)
            {
                this.TrainHandler = null;
            }
        }
示例#10
0
        public void RegisterTrainHandler(TrainHandler trainHandler)
        {
            if (this.TrainHandler != trainHandler)
            {
                this.TrainHandler = trainHandler;
            }

            if (this.TrainHandler != null && !this.TrainHandler.Tracks.Contains(this))
            {
                this.TrainHandler.RegisterTrack(this);
            }
        }
示例#11
0
    internal void RegisterTrainArrival(Train train, Hand hand, TrainHandler trainHandler)
    {
        TrainArrivals[hand.Index]++;
        this.Score++;
        this.UIPanel.ResultsPanel.Refresh(TrainArrivals, NumberOfTrains, this.Score);

        if (trainHandler is Box)
        {
            Box box = trainHandler as Box;
            if (box.WinningGare != null)
            {
                box.WinningGare.Animator.SetTrigger("Hit");
            }
        }
    }
示例#12
0
        public async Task DoReservation(Train train, int seatNumber)
        {
            try
            {
                var reservationModel = new ReserveModel();
                reservationModel.train_id          = train.AsDisplayString();
                reservationModel.booking_reference = await this.service.GetReservationReference();

                var trainInfo = await this.service.GetTrainInformation(train);

                Handler coachHandler = new CoachHandler(this.utils, this.service);
                Handler trainHandler = new TrainHandler(this.utils, this.service);
                coachHandler.SetSuccessor(trainHandler);
                coachHandler.HandleReservationRequest(trainInfo, reservationModel, seatNumber);
                this.PrintUserInfoBooking(reservationModel);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public override void Stop()
        {
            _isReentryOn = false;
            IsOnTracks   = false;

            if (trainHandler != null)
            {
                if (trainHandler.Exists && trainHandler.AttachedToTarget)
                {
                    trainHandler.DetachTargetVehicle();
                }

                trainHandler.OnVehicleAttached -= TrainHandler_OnVehicleAttached;
                trainHandler.OnTrainDeleted    -= TrainHandler_OnTrainDeleted;

                if (trainHandler.Exists && !trainHandler.IsRogersSierra)
                {
                    trainHandler.DeleteTrain();
                }

                trainHandler = null;
            }
        }
示例#14
0
 // Start is called before the first frame update
 void Start()
 {
     trainHandler        = GetComponentInChildren <TrainHandler>();
     architeturalHandler = GetComponentInChildren <ArchitecturalHandler>();
 }
示例#15
0
 void Start()
 {
     rigidBody       = GetComponent <Rigidbody>();
     initialPosition = transform.position;
     trainHandler    = GameObject.Find("S4_TrainContainer Variant").GetComponent <TrainHandler>();
 }
示例#16
0
 public TrainHandlerNavigationEventData(Train train, TrainHandler trainHandler, Hand viaHand)
 {
     Train        = train;
     TrainHandler = trainHandler;
     ViaHand      = viaHand;
 }