Пример #1
0
    private void LoadTrains()
    {
        foreach (var trainRide in apiManager.TrainRides)
        {
            LoadCities(trainRide);
            Point firstPoint = trainRide.points[0];

            Train train = MakeTrain(
                trainRide.trainRideId,
                trainRide.train.trainType == "Pendolino"?TrainTypes.Pendolino:TrainTypes.Thomans,
                new Vector3(Consts.mapScale * (float)firstPoint.latitude, cityHeight, Consts.mapScale * (float)firstPoint.longitude)
                );

            foreach (var user in apiManager.GetTrainUsers(trainRide.trainRideId))
            {
                bool  isPlayer = user.userId == apiManager.userId;
                Wagon wagon    = train.AddWagon(isPlayer);
                if (isPlayer)
                {
                    Camera.main.transform.SetParent(wagon.transform);
                    Camera.main.transform.position = new Vector3(-10, 10, -6);
                    Camera.main.transform.rotation = Quaternion.Euler(20, 50, 0);
                    cameraDrag.target            = train;
                    customizationManager.myWagon = wagon;
                    customizationManager.Fetch();
                }
            }

            TrainPath path = new TrainPath();
            path.points = beziers;
            train.FollowPath(path);

            trains.Add(train);
        }
    }
        public ActionResult DeleteTrainPath(int id)
        {
            var message = "OK";
            DataSource <PositionViewModel> Source = new DataSource <PositionViewModel>();

            TrainPath trainPath = _hrUnitOfWork.TrainingRepository.GetTrainPath(id);

            if (trainPath != null)
            {
                AutoMapper(new Models.AutoMapperParm
                {
                    Source     = trainPath,
                    ObjectName = "TrainPaths",
                    Transtype  = TransType.Delete
                });

                _hrUnitOfWork.TrainingRepository.Remove(trainPath);
            }
            Source.Errors = SaveChanges(Language);

            if (Source.Errors.Count() > 0)
            {
                return(Json(Source));
            }
            else
            {
                return(Json(message));
            }
        }
Пример #3
0
 public void Remove(TrainPath trainPath)
 {
     if (Context.Entry(trainPath).State == EntityState.Detached)
     {
         context.TrainPath.Attach(trainPath);
     }
     context.TrainPath.Remove(trainPath);
 }
Пример #4
0
    TrainPath MakePath(string name, Vector3 start, Vector3 end)
    {
        var a = new TrainPath();

        a.name   = name;
        a.points = MakeBezierBetweenTwoPoints(start, end, 25).Item1;
        return(a);
    }
Пример #5
0
    private void SetupNewTrain()
    {
        GameObject train     = Instantiate(trainPrefab);
        TrainPath  trainPath = train.GetComponent <TrainPath>();

        AssignTrainOwnershipToPlayer(train.GetComponent <TrainScoreController>());
        train.transform.position = startTarget.transform.position;
        trainPath.initialTarget  = initialTarget;
        activeTrain = train;
        trains.Add(train);
        powerControl.GetComponent <PowerGaugeController>().ActivePowerGauge(trainPath);
        LockCameraToActiveTrain();
    }
Пример #6
0
    public void FollowPath(TrainPath path, int firstStep)
    {
        currentPath = path;
        var i = firstStep;

        Run.EachFrame(() =>
        {
            if (i < currentPath.points.Count - 1)
            {
                gameObject.transform.parent.position = currentPath.points[i];
                //gameObject.transform.position = currentPath.points[i];
                gameObject.transform.LookAt(currentPath.points[i + 5]);
                i++;
            }
        });
    }
Пример #7
0
 public void FollowPath(TrainPath path)
 {
     Start();
     thomas.FollowPath(path, 85 * wagons.Count);
     Run.After(0, () =>
     {
         for (int i = 0; i < wagons.Count; i++)
         {
             Debug.Log(i);
             var d            = i;
             wagons[d].number = d;
             wagons[d].parent = this;
             Run.After(0, () => { wagons[d].FollowPath(path, (wagons.Count - d) * 76); });
         }
     });
 }
Пример #8
0
 public void FollowPath(TrainPath path)
 {
     Start();
     thomas.FollowPath(path);
     for (int i = 0; i < wagons.Count; i++)
     {
         Debug.Log(i);
         var d = i;
         Run.After(0, () =>
         {
             Debug.Log(i);
             Debug.Log(d);
             wagons[d].FollowPath(path);
         });
     }
 }
Пример #9
0
    public void FollowPath(TrainPath path)
    {
        currentPath = path;
        var i = 0;

        Run.EachFrame(() =>
        {
            if (!colliding)
            {
                if (i < currentPath.points.Count - 1)
                {
                    gameObject.transform.position = currentPath.points[i];
                    gameObject.transform.LookAt(currentPath.points[i + 1]);
                    i++;
                }
            }
        });
    }
 private void MapTrainPath(TrainPath trainPath, TrainPathFormViewModel model, OptionsViewModel moreInfo)
 {
     model.Branches         = model.IBranches == null ? null : string.Join(",", model.IBranches.ToArray());
     model.Jobs             = model.IJobs == null ? null : string.Join(",", model.IJobs.ToArray());
     model.Employments      = model.IEmployments == null ? null : string.Join(",", model.IEmployments.ToArray());
     model.PeopleGroups     = model.IPeopleGroups == null ? null : string.Join(",", model.IPeopleGroups.ToArray());
     model.Payrolls         = model.IPayrolls == null ? null : string.Join(",", model.IPayrolls.ToArray());
     model.PayrollGrades    = model.IPayrollGrades == null ? null : string.Join(",", model.IPayrollGrades.ToArray());
     model.CompanyStuctures = model.ICompanyStuctures == null ? null : string.Join(",", model.ICompanyStuctures.ToArray());
     model.Positions        = model.IPositions == null ? null : string.Join(",", model.IPositions.ToArray());
     moreInfo.VisibleColumns.Add("Branches");
     moreInfo.VisibleColumns.Add("Jobs");
     moreInfo.VisibleColumns.Add("Employments");
     moreInfo.VisibleColumns.Add("PeopleGroups");
     moreInfo.VisibleColumns.Add("Payrolls");
     moreInfo.VisibleColumns.Add("PayrollGrades");
     moreInfo.VisibleColumns.Add("CompanyStuctures");
     moreInfo.VisibleColumns.Add("Positions");
     _hrUnitOfWork.LeaveRepository.AddLName(Language, trainPath.Name, model.Name, model.LocalName);
     if (trainPath.Id == 0)
     {
         AutoMapper(new Models.AutoMapperParm
         {
             Destination = trainPath,
             Source      = model,
             ObjectName  = "TrainPath",
             Options     = moreInfo,
             Transtype   = TransType.Insert
         });
     }
     else
     {
         AutoMapper(new Models.AutoMapperParm
         {
             Destination = trainPath,
             Source      = model,
             ObjectName  = "TrainPath",
             Options     = moreInfo,
             Transtype   = TransType.Update
         });
     }
 }
Пример #11
0
        private IEnumerable <TrainPath> GetTrainPaths(IEnumerable <TrainRun> trainRuns)
        {
            var trainGroups = trainRuns
                              .GroupBy(m => m.Zugnummer).ToArray();

            foreach (var trainGroup in trainGroups)
            {
                var trainPathKey      = GetTrainPathKey(trainGroup);
                var trainPathVariants = GetTrainPathVariants(trainGroup).ToArray();

                var result = new TrainPath
                {
                    importValidityFrame = timetableVersion.validity.AsArray(),
                    infrastructureManagerTrainPathId = trainGroup.Key.ToString(),
                    trainPathKey      = trainPathKey,
                    trainPathVariants = trainPathVariants,
                };

                yield return(result);
            }
        }
        public ActionResult DetailsTrainPath(TrainPathFormViewModel model, OptionsViewModel moreInfo)
        {
            List <Error> errors = new List <Error>();

            if (ModelState.IsValid)
            {
                if (ServerValidationEnabled)
                {
                    errors = _hrUnitOfWork.SiteRepository.CheckForm(new CheckParm
                    {
                        CompanyId  = CompanyId,
                        ObjectName = "TrainPath",
                        TableName  = "TrainPaths",
                        Columns    = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))),
                        Culture    = Language
                    });

                    if (errors.Count() > 0)
                    {
                        foreach (var e in errors)
                        {
                            foreach (var errorMsg in e.errors)
                            {
                                ModelState.AddModelError(errorMsg.field, errorMsg.message);
                            }
                        }

                        return(Json(Models.Utils.ParseFormErrors(ModelState)));
                    }
                }

                var record = _hrUnitOfWork.Repository <TrainPath>().FirstOrDefault(a => a.Id == model.Id);
                //insert
                if (record == null)
                {
                    record = new TrainPath();

                    MapTrainPath(record, model, moreInfo);
                    record.CreatedUser = UserName;
                    record.CreatedTime = DateTime.Now;
                    record.CompanyId   = model.IsLocal ? CompanyId : (int?)null;
                    if (record.StartDate > record.EndDate)
                    {
                        ModelState.AddModelError("EndDate", MsgUtils.Instance.Trls("EndDateGthanStartDate"));
                        return(Json(Models.Utils.ParseFormErrors(ModelState)));
                    }
                    _hrUnitOfWork.TrainingRepository.Add(record);
                }

                //update
                else
                {
                    MapTrainPath(record, model, moreInfo);
                    record.ModifiedTime = DateTime.Now;
                    record.ModifiedUser = UserName;
                    record.CompanyId    = model.IsLocal ? CompanyId : (int?)null;
                    if (record.StartDate > record.EndDate)
                    {
                        ModelState.AddModelError("EndDate", MsgUtils.Instance.Trls("EndDateGthanStartDate"));
                        return(Json(Models.Utils.ParseFormErrors(ModelState)));
                    }
                    _hrUnitOfWork.TrainingRepository.Attach(record);
                    _hrUnitOfWork.TrainingRepository.Entry(record).State = EntityState.Modified;
                }
                var Errors = SaveChanges(Language);
                TempData["pathId"] = record.Id;
                var message = "OK";
                if (Errors.Count > 0)
                {
                    message = Errors.First().errors.First().message;
                }

                return(Json(message));
            }

            return(Json(Models.Utils.ParseFormErrors(ModelState)));
        }
Пример #13
0
 public DbEntityEntry <TrainPath> Entry(TrainPath trainPath)
 {
     return(Context.Entry(trainPath));
 }
Пример #14
0
 public void Attach(TrainPath trainPath)
 {
     context.TrainPath.Attach(trainPath);
 }
Пример #15
0
 public void Add(TrainPath trainPath)
 {
     context.TrainPath.Add(trainPath);
 }
Пример #16
0
 public void ActivePowerGauge(TrainPath train)
 {
     trainPath = train;
     gameObject.SetActive(true);
     power_gauge.fillAmount = 0;
 }