Example #1
0
        public AbstractFactoryCars FactoryMethod(AllCars CarType)
        {
            AbstractFactoryCars abstractFactoryCars = null;

            switch (CarType)
            {
            case AllCars.Sedan:
                abstractFactoryCars = new Sedan();
                break;

            case AllCars.Hatchback:
                abstractFactoryCars = new Hatchback();
                break;

            case AllCars.StationWagon:
                abstractFactoryCars = new StationWagon();
                break;

            case AllCars.Suv:
                abstractFactoryCars = new Suv();
                break;

            case AllCars.PicUp:
                abstractFactoryCars = new PicUp();
                break;
            }
            return(abstractFactoryCars);
        }
        public void Execute(AllCars allCars, int activePLID)
        {
            int heading       = allCars.GetCarByPLID(activePLID).heading;
            int AmmountOfCars = allCars.Length();

            carHeadingsDiff = new UInt16[AmmountOfCars];

            for (int index = 0; index < AmmountOfCars; index++)
            {
                carHeadingsDiff[index] = (UInt16)Math.Abs(heading - allCars.GetCarByIndex(index).heading);
                int distance = allCars.GetCarByPLID(activePLID).GetDistanceToAnotherCar(allCars.GetCarByIndex(index));

                warningColors[index] = 9;
                if (carHeadingsDiff[index] < 270 && carHeadingsDiff[index] > 90 && distance < 300)
                {
                    warningColors[index] = 3;
                }
                if (carHeadingsDiff[index] < 210 && carHeadingsDiff[index] > 150 && distance < 300)
                {
                    warningColors[index] = 1;
                }
            }

            //if (parameters.showDanger) { buttons.DangerAhead(_inSim, color); } else { buttons.DangerAheadClear(_inSim); }
        }
Example #3
0
        /// <summary>
        /// Функция добавления нового экземпляра авто в список станции.
        /// </summary>
        /// <param name="someCar">Экземпляр класса Car.</param>
        public void AddCar(Car someCar)
        {
            LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod());

            //foreach (Car c in this.AllCars)
            //    if (someCar.Number == c.Number)
            //    {
            //        Console.WriteLine("Авто с таким гос. номером уже зарегистрирован.");
            //        return;
            //    }
            //    else if (someCar.NumberBody == c.NumberBody)
            //    {
            //        Console.WriteLine("Авто с таким VIN номером уже зарегистрирован.");
            //        return;
            //    }
            //    AllCars.Add(someCar);

            Car mCar = this.AllCars.FirstOrDefault(c => c.Number == someCar.Number || c.NumberBody == someCar.NumberBody);

            if (mCar == null)
            {
                AllCars.Add(someCar);
                return;
            }
            if (someCar.Number == mCar.Number)
            {
                Console.WriteLine("Авто с таким гос. номером уже зарегистрирован.");
                return;
            }
            if (someCar.NumberBody == mCar.NumberBody)
            {
                Console.WriteLine("Авто с таким VIN номером уже зарегистрирован.");
                return;
            }
        }
Example #4
0
        /// <summary>
        /// Найти все свободные авто попадающие под определенные параметры. Только Таксишки!
        /// Работает методом исключения: сначала ищет все свободные авто
        /// соответствующие заданному классу комфорта;
        /// потом из полученного списка удаляет авто не совпадающие с заданными
        /// параметрами(по одному параметру за раз).
        /// </summary>
        /// <param name="smoke"></param>
        /// <param name="childPositions"></param>
        /// <param name="animals"></param>
        /// <param name="carClass"></param>
        /// <returns></returns>
        public List <Car> GetFreeTaxi(bool smoke, byte childPositions, bool animals, Taxi.CarClases carClass = Taxi.CarClases.Base)
        {
            LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod());

            //List<Car> freeCars = new List<Car>();

            //foreach (Car c in AllCars)
            //    if ((c is Taxi) && !(c as Taxi).IsRun && (c as Taxi).CarClass == carClass)
            //        freeCars.Add(c);

            //if (smoke)
            //    foreach (Car c in freeCars.ToArray())
            //        if (!c.Smoke)
            //            freeCars.Remove(c);
            //if (childPositions > 0)
            //    foreach (Car c in freeCars.ToArray())
            //        if (c.ChildPositions < childPositions)
            //            freeCars.Remove(c);
            //if (animals)
            //    foreach (Car c in freeCars.ToArray())
            //        if (!c.Animals)
            //            freeCars.Remove(c);

            //return freeCars;

            return(AllCars.Select(it => it as Taxi).Where(c => c != null &&
                                                          !c.IsRun &&
                                                          c.CarClass == carClass &&
                                                          c.Smoke == smoke &&
                                                          c.ChildPositions >= childPositions &&
                                                          c.Animals == animals).ToList <Car>());
        }
 public void RemoveSetOfRegistrationNumber(List <string> RegistrationNumbers)
 {
     foreach (var number in RegistrationNumbers)
     {
         if (AllCars.Any(x => x.RegistrationNumber == number.ToString()))
         {
             this.AllCars.RemoveAll(x => x.RegistrationNumber == number);
         }
     }
 }
 public string RemoveCar(string registrationNumber)
 {
     if (!AllCars.Any(x => x.RegistrationNumber == registrationNumber))
     {
         return("Car with that registration number, doesn't exist!");
     }
     else
     {
         AllCars.Remove(AllCars.Where(x => x.RegistrationNumber == registrationNumber).FirstOrDefault());
         return($"Successfully removed {registrationNumber}");
     }
 }
Example #7
0
        private void button1_Click(object sender, EventArgs e)
        {
            AllCars             uretilecekarac      = (AllCars)this.comboBox1.SelectedItem;
            Creater             creater             = new Creater();
            AbstractFactoryCars abstractFactoryCars = creater.FactoryMethod(uretilecekarac);

            abstractFactoryCars.Lastikler();
            abstractFactoryCars.Motor();
            abstractFactoryCars.Renk();
            abstractFactoryCars.Test();
            textBox1.Text += abstractFactoryCars.IslemSonuc() + " ";
        }
 public string AddCar(Car car)
 {
     if (AllCars.Any(x => x.RegistrationNumber == car.RegistrationNumber))
     {
         return("Car with that registration number, already exists!");
     }
     if (Count >= Capacity)
     {
         return("Parking is full!");
     }
     else
     {
         AllCars.Add(car);
         return($"Successfully added new car {car.Make } {car.RegistrationNumber}");
     }
 }
Example #9
0
 public string AddCar(Car c)
 {
     if (c is SUV)
     {
         SUVs.Add(c);
     }
     else if (c is Van)
     {
         Vans.Add(c);
     }
     else if (c is Truck)
     {
         Trucks.Add(c);
     }
     else if (c is Sedan)
     {
         Sedans.Add(c);
     }
     AllCars.Add(c);
     return("Added " + c.Make + " " + c.Model + " at $" + c.Price);
 }
Example #10
0
        /// <summary>
        /// Удалить авто из списка станции, используя VIN номер.
        /// </summary>
        /// <param name="delNumber"></param>
        /// <returns></returns>
        public bool DelCarViaBodyNumber(string delNumber)
        {
            LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod());

            //foreach (Car c in AllCars)
            //    if (c.NumberBody == delNumber)
            //    {
            //        AllCars.Remove(c);
            //        return true;
            //    }
            //return false;

            Car mCar = this.AllCars.FirstOrDefault(c => c.NumberBody == delNumber);

            if (mCar != null)
            {
                AllCars.Remove(mCar);
                return(true);
            }
            return(false);
        }
Example #11
0
        public void Execute(Parameters parameters, AllCars allCars, Commands commands, InSimDotNet.InSim _inSim, Buttons buttons)
        {
            if (parameters.dragMode)
            {
                if (parameters.dragPickPlayer1)
                {
                    dragPlayer1PLID = -1;
                    dragPlayer2PLID = -1;
                    player1Distance = 0;
                    player2Distance = 0;
                }

                if (parameters.dragPickPlayer1 && parameters.playerIndexChanged)
                {
                    int listID = parameters.playerIndexFromList;
                    dragPlayer1PLID = allCars.GetCarByIndex(listID).PLID;

                    parameters.dragPickPlayer1    = false;
                    parameters.dragPickPlayer2    = true;
                    parameters.playerIndexChanged = false;
                }

                if (parameters.dragPickPlayer2 && parameters.playerIndexChanged)
                {
                    int listID = parameters.playerIndexFromList;
                    dragPlayer2PLID = allCars.GetCarByIndex(listID).PLID;

                    parameters.dragPickPlayer2    = false;
                    parameters.dragReady          = true;
                    parameters.playerIndexChanged = false;
                }

                if (parameters.dragStarted)
                {
                    bool goodStart = true;
                    if (allCars.GetCarByPLID(dragPlayer1PLID).rawSpeed > 100)
                    {
                        string name = allCars.GetCarByPLID(dragPlayer1PLID).playerName;
                        commands.SendCommandMessage(_inSim, "/msg ^7Blogas Startas: ^8" + name);
                        goodStart = false;
                    }
                    if (allCars.GetCarByPLID(dragPlayer2PLID).rawSpeed > 100)
                    {
                        string name = allCars.GetCarByPLID(dragPlayer2PLID).playerName;
                        commands.SendCommandMessage(_inSim, "/msg ^7Blogas Startas: ^8" + name);
                        goodStart = false;
                    }
                    if (!goodStart)
                    {
                        parameters.dragStarted = false;
                    }
                }

                if (parameters.dragRunning)
                {
                    player1Distance += allCars.GetCarByPLID(dragPlayer1PLID).tickDistance;
                    player2Distance += allCars.GetCarByPLID(dragPlayer2PLID).tickDistance;

                    if (player1Distance > distanceToDrive || player2Distance > distanceToDrive)
                    {
                        if (player1Distance > player2Distance)
                        {
                            String output = "/msg " + allCars.GetCarByPLID(dragPlayer1PLID).playerName + "^7 Laimėjo";
                            commands.SendCommandMessage(_inSim, output);
                            parameters.dragRunning = false;
                        }
                        else
                        {
                            String output = "/msg " + allCars.GetCarByPLID(dragPlayer2PLID).playerName + "^7 Laimėjo";
                            commands.SendCommandMessage(_inSim, output);
                            parameters.dragRunning = false;
                        }
                    }
                }

                if (parameters.dragPrintPlayer1)
                {
                    string name = "None";
                    if (dragPlayer1PLID != -1)
                    {
                        name = allCars.GetCarByPLID(dragPlayer1PLID).playerName;
                    }
                    commands.SendCommandMessage(_inSim, "/msg ^7Dalyvis Nr1: ^8" + name);
                    parameters.dragPrintPlayer1 = false;
                }

                if (parameters.dragPrintPlayer2)
                {
                    string name = "None";
                    if (dragPlayer1PLID != -1)
                    {
                        name = allCars.GetCarByPLID(dragPlayer2PLID).playerName;
                    }
                    commands.SendCommandMessage(_inSim, "/msg ^7Dalyvis Nr2: ^8" + name);
                    parameters.dragPrintPlayer2 = false;
                }

                if (parameters.dragPrintDistance)
                {
                    commands.SendCommandMessage(_inSim, "/msg ^7Drago atstumas: ^3" + distanceToDrive / 1000 + "^7 metrų");
                    parameters.dragPrintDistance = false;
                }

                if (parameters.dragLights)
                {
                    parameters.dragLights = false;
                    new Thread(() =>
                    {
                        Thread.CurrentThread.IsBackground = true;
                        DragLights(parameters, commands, _inSim);
                        parameters.dragStarted = false;
                    }).Start();
                }

                string dragPlayerName1 = "None";
                if (dragPlayer1PLID != -1)
                {
                    dragPlayerName1 = allCars.GetCarByPLID(dragPlayer1PLID).playerName;
                }

                string dragPlayerName2 = "None";
                if (dragPlayer2PLID != -1)
                {
                    dragPlayerName2 = allCars.GetCarByPLID(dragPlayer2PLID).playerName;
                }
                buttons.ShowDragMenu(_inSim, parameters, dragPlayerName1, dragPlayerName2, distanceToDrive);
            }
        }
 public Car GetCar(string registrationNumber)
 {
     return(AllCars.FirstOrDefault(x => x.RegistrationNumber == registrationNumber));
 }
Example #13
0
        /// <summary>
        /// Найти авто по гос. номеру.
        /// </summary>
        /// <param name="searchNumber"></param>
        /// <returns></returns>
        public Car SearchCarViaNumber(string searchNumber)
        {
            LoggerMaster.LoggerM.Debug("In class: " + nameof(TaxiStation) + " : " + "Try call: " + MethodBase.GetCurrentMethod());

            return(AllCars.FirstOrDefault(c => c.Number == searchNumber));
        }