Пример #1
0
		private void Bind(VehicleCollection vehicles, IVehicleDetector detector)
		{
			_model.Bind(detector.RequiredPorts.GetVehicleKind = vehicles.ProvidedPorts.GetVehicleKind);
			_model.Bind(detector.RequiredPorts.GetVehiclePosition = vehicles.ProvidedPorts.GetVehiclePosition);
			_model.Bind(detector.RequiredPorts.GetVehicleSpeed = vehicles.ProvidedPorts.GetVehicleSpeed);
			_model.Bind(detector.RequiredPorts.GetVehicleLane = vehicles.ProvidedPorts.GetVehicleLane);
		}
Пример #2
0
        /*
         * In here I'm changing the prefabs to have my classes. This way, every time the game instantiates
         * a prefab that I've changed, that object will run my code.
         * The prefabs aren't available at the moment of creation of this class, that's why I keep trying to
         * run it on update. I want to make sure I make the switch as soon as they exist to prevent the game
         * from instantianting objects without my code.
         */
        void TryReplacePrefabs()
        {
            try {
                NetCollection     beautificationNetCollection = GameObject.Find("Beautification").GetComponent <NetCollection>();
                VehicleCollection garbageVehicleCollection    = GameObject.Find("Garbage").GetComponent <VehicleCollection>();
                VehicleCollection policeVehicleCollection     = GameObject.Find("Police Department").GetComponent <VehicleCollection>();
                //VehicleCollection publicTansportVehicleCollection = GameObject.Find("Public Transport").GetComponent<VehicleCollection>();
                VehicleCollection healthCareVehicleCollection     = GameObject.Find("Health Care").GetComponent <VehicleCollection>();
                VehicleCollection fireDepartmentVehicleCollection = GameObject.Find("Fire Department").GetComponent <VehicleCollection>();

                // Localization
                UpdateLocalization();

                // roads
                PedestrianZoningPathAI.Initialize(beautificationNetCollection, transform);
                PedestrianZoningBridgeAI.Initialize(beautificationNetCollection, transform);

                // vehicles
                CustomGarbageTruckAI.Initialize(garbageVehicleCollection, transform);
                CustomAmbulanceAI.Initialize(healthCareVehicleCollection, transform);
                //CustomBusAI.Initialize(publicTansportVehicleCollection, transform);
                CustomFireTruckAI.Initialize(fireDepartmentVehicleCollection, transform);
                CustomHearseAI.Initialize(healthCareVehicleCollection, transform);
                CustomPoliceCarAI.Initialize(policeVehicleCollection, transform);

                m_initialized = true;
            } catch (KeyNotFoundException knf) {
#if DEBUG
                System.IO.File.AppendAllText("Debug.txt", "Error trying to initialize custom prefabs: " + knf.Message + "\n");
                m_initialized = true;
#endif
            } catch (Exception) {}
        }
Пример #3
0
        /// <summary Get Collection>
        /// Get collection of emails. If no records to return, EmailCollection will be null.
        /// </summary>
        /// <returns></returns>
        public static VehicleCollection GetCollection()
        {
            VehicleCollection tempList = null;

            using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString))
            {
                using (SqlCommand myCommand = new SqlCommand("usp_GetProjects", myConnection))
                {
                    myCommand.CommandType = CommandType.StoredProcedure;

                    myCommand.Parameters.AddWithValue("@QueryId", SelectTypeEnum.GetCollection);

                    myConnection.Open();

                    using (SqlDataReader myReader = myCommand.ExecuteReader())
                    {
                        if (myReader.HasRows)
                        {
                            tempList = new VehicleCollection();

                            while (myReader.Read())
                            {
                                tempList.Add(FillDataRecord(myReader));
                            }
                        }
                        myReader.Close();
                    }
                }
            }
            return tempList;
        }
Пример #4
0
        public static void Initialize(VehicleCollection collection, Transform customPrefabs)
        {
            if (sm_initialized)
            {
                return;
            }
            VehicleInfo originalBus = collection.m_prefabs.Where(p => p.name.Contains("Bus")).FirstOrDefault();

            if (originalBus == null)
            {
                throw new KeyNotFoundException("Bus was not found on " + collection.name);
            }

            GameObject instance = GameObject.Instantiate <GameObject>(originalBus.gameObject);

            instance.name = "Bus";
            instance.transform.SetParent(customPrefabs);
            BusAI bai = instance.GetComponent <BusAI>();

            System.IO.File.AppendAllText("Bus.txt", bai.m_passengerCapacity + " | " + bai.m_ticketPrice + "\n");
            GameObject.Destroy(instance.GetComponent <BusAI>());
            instance.AddComponent <CustomBusAI>();

            VehicleInfo bus = instance.GetComponent <VehicleInfo>();

            bus.m_prefabInitialized = false;
            bus.m_vehicleAI         = null;

            MethodInfo initMethod = typeof(VehicleCollection).GetMethod("InitializePrefabs", BindingFlags.Static | BindingFlags.NonPublic);

            Singleton <LoadingManager> .instance.QueueLoadingAction((IEnumerator)initMethod.Invoke(null, new object[] { collection.name, new[] { bus }, new string[] { "Bus" } }));

            sm_initialized = true;
        }
 public void Deserialize()
 {
     if (this._vehicleCollection != null)
     {
         return;
     }
     this._vehicleCollection              = Serializer.Deserialize <VehicleCollection>("./scripts/Vehicles.dat") ?? new VehicleCollection();
     this._vehicleCollection.ListChanged += (VehicleCollection.ListChangedEvent)(sender => this.Serialize(false));
     foreach (VehicleData vehicle1 in this._vehicleCollection)
     {
         Vehicle vehicle2 = World.CreateVehicle(Model.op_Implicit(vehicle1.Hash), vehicle1.Position);
         if (Entity.op_Equality((Entity)vehicle2, (Entity)null))
         {
             UI.Notify("Failed to load vehicle.");
             break;
         }
         vehicle2.set_PrimaryColor(vehicle1.PrimaryColor);
         vehicle2.set_SecondaryColor(vehicle1.SecondaryColor);
         ((Entity)vehicle2).set_Health(vehicle1.Health);
         vehicle2.set_EngineHealth(vehicle1.EngineHealth);
         ((Entity)vehicle2).set_Rotation(vehicle1.Rotation);
         vehicle1.Handle = ((Entity)vehicle2).get_Handle();
         PlayerVehicles.AddKit(vehicle2, vehicle1);
         PlayerVehicles.AddBlipToVehicle(vehicle2);
         this._vehicles.Add(vehicle2);
         ((Entity)vehicle2).set_IsPersistent(true);
         new EntityEventWrapper((Entity)vehicle2).Died += new EntityEventWrapper.OnDeathEvent(this.WrapperOnDied);
     }
 }
Пример #6
0
        //static MethodInfo sm_tryCollectGarbage = typeof(FireTruckAI).GetMethod("TryCollectGarbage", BindingFlags.Instance | BindingFlags.NonPublic, Type.DefaultBinder, new[] { typeof(ushort), typeof(Vehicle), typeof(Vehicle.Frame) }, null);
        //static MethodInfo sm_tryCollectGarbageBig = typeof(FireTruckAI).GetMethod("TryCollectGarbage", BindingFlags.Instance | BindingFlags.NonPublic, Type.DefaultBinder, new[] { typeof(ushort), typeof(Vehicle), typeof(Vehicle.Frame), typeof(ushort), typeof(Building)  }, null);
        //static MethodInfo sm_arriveAtTarget = typeof(FireTruckAI).GetMethod("ArriveAtTarget", BindingFlags.Instance | BindingFlags.NonPublic);
        //static MethodInfo sm_shouldReturnToSource = typeof(FireTruckAI).GetMethod("ShouldReturnToSource", BindingFlags.Instance | BindingFlags.NonPublic);

        public static void Initialize(VehicleCollection collection, Transform customPrefabs)
        {
            if (sm_initialized)
            {
                return;
            }
            VehicleInfo originalGarbageTruck = collection.m_prefabs.Where(p => p.name == "Garbage Truck").FirstOrDefault();

            if (originalGarbageTruck == null)
            {
                throw new KeyNotFoundException("Garbage Truck was not found on " + collection.name);
            }

            GameObject instance = GameObject.Instantiate <GameObject>(originalGarbageTruck.gameObject);

            instance.name = "Garbage Truck";
            instance.transform.SetParent(customPrefabs);
            GameObject.Destroy(instance.GetComponent <GarbageTruckAI>());
            instance.AddComponent <CustomGarbageTruckAI>();

            VehicleInfo garbageTruck = instance.GetComponent <VehicleInfo>();

            garbageTruck.m_prefabInitialized = false;
            garbageTruck.m_vehicleAI         = null;

            MethodInfo initMethod = typeof(VehicleCollection).GetMethod("InitializePrefabs", BindingFlags.Static | BindingFlags.NonPublic);

            Singleton <LoadingManager> .instance.QueueLoadingAction((IEnumerator)initMethod.Invoke(null, new object[] { collection.name, new[] { garbageTruck }, new string[] { "Garbage Truck" } }));

            sm_initialized = true;
        }
Пример #7
0
		public static void Initialize(VehicleCollection collection, Transform customPrefabs)
		{
			if (sm_initialized)
				return;

            Debug.Log("Traffic++: Initializing Hearse.\n");

            VehicleInfo originalHearse = collection.m_prefabs.Where(p => p.name == "Hearse").FirstOrDefault();
            if (originalHearse == null)
                throw new KeyNotFoundException("Hearse was not found on " + collection.name);

            GameObject instance = GameObject.Instantiate<GameObject>(originalHearse.gameObject);
            instance.name = "Hearse";
            instance.transform.SetParent(customPrefabs);
            GameObject.Destroy(instance.GetComponent<HearseAI>());
            instance.AddComponent<CustomHearseAI>();

            VehicleInfo hearse = instance.GetComponent<VehicleInfo>();
            hearse.m_prefabInitialized = false;
            hearse.m_vehicleAI = null;

            MethodInfo initMethod = typeof(VehicleCollection).GetMethod("InitializePrefabs", BindingFlags.Static | BindingFlags.NonPublic);
            Initializer.QueuePrioritizedLoadingAction((IEnumerator)initMethod.Invoke(null, new object[] { collection.name, new[] { hearse }, new string[] { "Hearse" } }));

			sm_initialized = true;
		}
Пример #8
0
		public void Initialize()
		{
			var lightBarrier1 = new LightBarrier(position: 200);
			var lightBarrier2 = new LightBarrier(position: 400);

			var detectorLeft = new OverheadDetector(Lane.Left, position: 400);
			var detectorRight = new OverheadDetector(Lane.Right, position: 400);
			var detectorFinal = new OverheadDetector(Lane.Left, position: 600);

			var trafficLights = new TrafficLights();

			var preControl = new OriginalPreControl(lightBarrier1);
			var mainControl = new OriginalMainControl(lightBarrier2, detectorLeft, detectorRight, timeout: 30);
			var endControl = new OriginalEndControl(detectorFinal, timeout: 10);

			var vehicle1 = new Vehicle(VehicleKind.OverheightTruck);
			var vehicle2 = new Vehicle(VehicleKind.Truck);
			var vehicle3 = new Vehicle(VehicleKind.OverheightTruck);

			var heightControl = new HeightControl(preControl, mainControl, endControl, trafficLights);
			var vehicles = new VehicleCollection(vehicle1, vehicle2, vehicle3);

			_model = new Model();
			_model.AddRootComponents(heightControl, vehicles);

			Bind(vehicles, lightBarrier1);
			Bind(vehicles, lightBarrier2);
			Bind(vehicles, detectorLeft);
			Bind(vehicles, detectorRight);
			Bind(vehicles, detectorFinal);

			_model.Bind(vehicles.RequiredPorts.IsTunnelClosed = trafficLights.ProvidedPorts.IsRed);
		}
Пример #9
0
        private async void AddVehicleCommand_Execute(object param)
        {
            var response = await _window.ShowInputAsync("Name", "Name des Fahrzeuges");

            if (!String.IsNullOrEmpty(response))
            {
                VehicleCollection.Add(response);
            }
        }
Пример #10
0
        protected Driver()
        {
            drivers_amount++;
            DriverDeathEvent += Death;
            time_experience   = new SortedDictionary <Categories, uint>();
            vehicles          = new VehicleCollection();

            // 1.c
            action_handler = Death;
            func_handler   = FuncForFunc;
        }
Пример #11
0
        public static void Initialize(NetCollection collection, VehicleCollection vehicleCollection, TransportCollection transportCollection, Transform customPrefabs)
        {
            if (sm_initialized)
            {
                return;
            }

            Initialize(collection, transportCollection, customPrefabs, "Bus Line", "Bus");
            //Initialize(collection, transportCollection, customPrefabs, "Metro Line", "Metro");


            sm_initialized = true;
        }
Пример #12
0
        static void Main(string[] args)
        {
            VehicleCollection obj = new VehicleCollection();

            obj.Data();


            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("data at Index {0} is : \n {1}", i, obj.VehicleList[i].ToString());
            }
            Console.ReadLine();
        }
Пример #13
0
        static void UpdateVehicleCollection(string name, Array keptPrefabs, string[] replacedNames)
        {
            VehicleCollection c = GameObject.Find(name)?.GetComponent <VehicleCollection>();

            if (c != null)
            {
                c.m_prefabs = keptPrefabs as VehicleInfo[];

                if (replacedNames != null)
                {
                    c.m_replacedNames = replacedNames;
                }
            }
        }
Пример #14
0
        /// <summary>
        /// Retrieves all vehicles associated to the user
        /// </summary>
        ///  TODO: C'Tor needs to take a VIN/Identifier of some type to allow which car to pick from the list. For now we will take the primary
        private void GetVehicles()
        {
            RestRequest   getVehiclesRequest = new RestRequest($"users/{_userInfo.UserId}/vehicles?primaryOnly=false", Method.GET, DataFormat.Json);
            IRestResponse response           = _vehicleClient.Execute(getVehiclesRequest);

            if (!response.IsSuccessful)
            {
                throw new InvalidOperationException("Error retrieving associated vehicles");
            }

            DummyVehicleCollection vehicleData = JsonConvert.DeserializeObject <DummyVehicleCollection>(response.Content);

            _vehicles = new VehicleCollection();

            // Create specific vehicle classes depending on the fuel type
            foreach (DummyVehicle vehicle in vehicleData.vehicles)
            {
                vehicle.SetVehicleRequestClient(_vehicleClient, this);
                vehicle.AutoRefreshTokens = AutoRefreshTokens;

                // Grab attributes so we can answer the information below
                vehicle.GetVehicleAttributes();

                Vehicle specificVehicle = null;

                if (vehicle.FuelType == VehicleFuelType.Gasoline)
                {
                    specificVehicle = new GasVehicle(vehicle);
                }
                else if (vehicle.FuelType == VehicleFuelType.Ev)
                {
                    specificVehicle = new ElectricVehicle(vehicle);
                }

                if (specificVehicle == null)
                {
                    throw new Exception($"Unidentified vehicle fuel type");
                }

                Trace.TraceInformation($"Processing vehicle model \"{vehicle.Model}\"");

                specificVehicle.SetVehicleRequestClient(_vehicleClient, this);
                specificVehicle.GetVehicleStatusReport();
                specificVehicle.GetVehicleAttributes();
                _vehicles.Vehicles.Add(specificVehicle);
            }
        }
Пример #15
0
        private void MenuOpenCommand_Execute(object param)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter           = "AlarmWorkflow JSON (*.json)|*.json";
            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            if (openFileDialog.ShowDialog() == true)
            {
                CurrentOperation = OperationSerializer.Deserialize(openFileDialog.FileName);

                VehicleCollection.Clear();
                foreach (var item in CurrentOperation.Resources)
                {
                    VehicleCollection.Add(item.FullName);
                }
            }
        }
Пример #16
0
        /// <summary>
        ///   Initializes a new instance.
        /// </summary>
        private Model(Vehicle[] vehicles = null)
        {
            vehicles = vehicles ?? new[]
            {
                new Vehicle {
                    Kind = VehicleKind.OverheightVehicle
                },
                new Vehicle {
                    Kind = VehicleKind.OverheightVehicle
                },
                new Vehicle {
                    Kind = VehicleKind.HighVehicle
                }
            };

            LeftOHV.AddEffects <Vehicle.DriveLeftEffect>(vehicles.Where(vehicle => vehicle.Kind == VehicleKind.OverheightVehicle));
            LeftHV.AddEffects <Vehicle.DriveLeftEffect>(vehicles.Where(vehicle => vehicle.Kind == VehicleKind.HighVehicle));
            SlowTraffic.AddEffects <Vehicle.SlowTrafficEffect>(vehicles);

            VehicleCollection = new VehicleCollection(vehicles);
        }
Пример #17
0
        public static void Initialize(VehicleCollection collection, Transform customPrefabs)
        {
            if (sm_initialized)
            {
                return;
            }

            Debug.Log("Traffic++: Initializing Bus.\n");

            VehicleInfo originalBus = collection.m_prefabs.Where(p => p.name.Contains("Bus")).FirstOrDefault();

            if (originalBus == null)
            {
                throw new KeyNotFoundException("Bus was not found on " + collection.name);
            }

            GameObject instance = GameObject.Instantiate <GameObject>(originalBus.gameObject);

            instance.name = "Bus";
            instance.transform.SetParent(customPrefabs);

            BusAI         busAI         = instance.GetComponent <BusAI>();
            TransportInfo transportInfo = busAI.m_transportInfo;

            GameObject.Destroy(instance.GetComponent <BusAI>());
            CustomBusAI customBusAI = instance.AddComponent <CustomBusAI>();

            customBusAI.m_transportInfo = transportInfo;

            VehicleInfo bus = instance.GetComponent <VehicleInfo>();

            bus.m_prefabInitialized = false;
            bus.m_vehicleAI         = null;

            MethodInfo initMethod = typeof(VehicleCollection).GetMethod("InitializePrefabs", BindingFlags.Static | BindingFlags.NonPublic);

            Initializer.QueuePrioritizedLoadingAction((IEnumerator)initMethod.Invoke(null, new object[] { collection.name, new[] { bus }, new string[] { "Bus" } }));

            sm_initialized = true;
        }
Пример #18
0
        public static void Initialize(VehicleCollection collection, Transform customPrefabs)
        {
            if (sm_initialized)
            {
                return;
            }

            Debug.Log("Traffic++: Initializing Cargo Trucks.");

            int length = collection.m_prefabs.Length;

            VehicleInfo[] vehicles     = new VehicleInfo[length];
            string[]      vehicleNames = new string[length];
            for (int i = 0; i < length; i++)
            {
                VehicleInfo vehicleInfo = collection.m_prefabs[i];
                if (vehicleInfo == null)
                {
                    throw new KeyNotFoundException("Null prefab in the collection " + collection.name);
                }

                vehicleNames[i] = vehicleInfo.name;

                GameObject gameObject = GameObject.Instantiate <GameObject>(vehicleInfo.gameObject);
                gameObject.name = vehicleNames[i];
                gameObject.transform.SetParent(customPrefabs);
                GameObject.Destroy(gameObject.GetComponent <CargoTruckAI>());
                gameObject.AddComponent <CustomCargoTruckAI>();
                vehicles[i] = gameObject.GetComponent <VehicleInfo>();
                vehicles[i].m_prefabInitialized = false;
                vehicles[i].m_vehicleAI         = null;
            }

            MethodInfo method = typeof(VehicleCollection).GetMethod("InitializePrefabs", BindingFlags.NonPublic | BindingFlags.Static);

            Initializer.QueuePrioritizedLoadingAction((IEnumerator)method.Invoke(null, new object[] { collection.name, vehicles, vehicleNames }));

            CustomCargoTruckAI.sm_initialized = true;
        }
Пример #19
0
 public void Deserialize()
 {
     if (_vehicleCollection == null)
     {
         VehicleCollection des = Serializer.Deserialize <VehicleCollection>("./scripts/Vehicles.dat");
         if (des == null)
         {
             des = new VehicleCollection();
         }
         _vehicleCollection              = des;
         _vehicleCollection.ListChanged += delegate
         {
             Serialize(false);
         };
         foreach (VehicleData item in _vehicleCollection)
         {
             Vehicle vehicle = World.CreateVehicle(item.Hash, item.Position);
             if (vehicle == null)
             {
                 UI.Notify("Failed to load vehicle.");
                 break;
             }
             vehicle.PrimaryColor   = item.PrimaryColor;
             vehicle.SecondaryColor = item.SecondaryColor;
             vehicle.Health         = item.Health;
             vehicle.EngineHealth   = item.EngineHealth;
             vehicle.Rotation       = item.Rotation;
             item.Handle            = vehicle.Handle;
             AddKit(vehicle, item);
             AddBlipToVehicle(vehicle);
             _vehicles.Add(vehicle);
             vehicle.IsPersistent = true;
             EntityEventWrapper wrapper = new EntityEventWrapper(vehicle);
             wrapper.Died += WrapperOnDied;
         }
     }
 }
        public static void Main(string[] args)
        {
            VehicleCollection<Vehicle> vehicles = new VehicleCollection<Vehicle>();

            for (int i = 0; i < 2; i++)
            {
                Vehicle newVehicle = new Vehicle();
                Console.WriteLine("------------------- Enter {0} vehicle details ----------------", i + 1);
                Program.GetDetails(newVehicle);
                Console.WriteLine("------------------------------------------------------------------");

                vehicles.Add(newVehicle);
            }
            Console.ReadKey();

            foreach (Vehicle vehicle in vehicles)
            {
                vehicle.PrintDetails();
            }
            Console.WriteLine(" NOW sorting the vehicles according to VehicleId .......\n\n\n press any key to see result \n ");
            vehicles.sort();
            Console.ReadKey();

            foreach (var vehicle in vehicles)
            {
                vehicle.PrintDetails();
            }
            Console.ReadKey();
            Console.WriteLine(" \n\n\n now comparing two Vehicles {0} , {1}", vehicles[0].VehicleType, vehicles[1].VehicleType);
            if (vehicles[0].Equals(vehicles[1]))
                Console.WriteLine(" yes they are equal");
            else
                Console.WriteLine(" no they are not equal");

            Console.ReadKey();
        }
Пример #21
0
        static void Main(string[] args)
        {
            Driver dr1 = new Driver("Omegalul Kek", 17);
            Driver dr2 = new ExperiencedDriver("Omegalul Sas", 32);
            Driver dr3 = new Driver("Omegalul Sos", 12);

            Console.WriteLine("exception test");
            try { Driver dr4 = new ExperiencedDriver("Omegalul Kok", 18); }
            catch (SmallAgeException e) { Console.WriteLine("Low age excpetion caught: {0}, minimal age - {1}, entered age - {2}", e.Message, e.MinimalAge, e.InputAge); }


            DriverLicense lic1 = DriverLicense.CreateDriverLicense(dr1);
            DriverLicense lic2 = DriverLicense.CreateDriverLicense(dr2);
            DriverLicense lic3 = DriverLicense.CreateDriverLicense(dr3);

            if (lic3 == null)
            {
                Console.WriteLine("lic3 is null");
            }

            IPerson            dr5 = new ExperiencedDriver("p", 35);
            IDrivingExperience dr6 = new ExperiencedDriver("r", 34);

            Console.WriteLine(dr5.OverrallExperience);
            Console.WriteLine(dr6.OverrallExperience);

            AVehicle veh1 = new Motorcicle("hf7834h87h32487hc8", Categories.A1);
            AVehicle veh2 = new Car("hjkfdjkadhkjf2", Categories.B, "Lul car", 0, 1596, 88, false);

            dr1.AddVehicle(veh1);

            foreach (AVehicle veh in dr1.Vehicles)
            {
                Console.WriteLine(veh.VinCode);
            }

            Console.WriteLine("event, delegate test");
            Console.WriteLine("dr1 is_alive - {0}", dr1.IsAlive);
            Console.WriteLine("dr1 license is active - {0}", lic1.IsActive);
            Console.WriteLine("dr1 is driving - {0}", dr1.Drive("hf7834h87h32487hc8", 10));
            Console.WriteLine("dr1 is_alive - {0}", dr1.IsAlive);
            Console.WriteLine("dr1 license is active - {0}", lic1.IsActive);


            VehicleCollection vc1 = new VehicleCollection();

            Console.WriteLine("MaxGen {0}", GC.MaxGeneration);
            vc1.MakeGarbage();
            Console.WriteLine("Gen {0}", GC.GetGeneration(vc1));
            Console.WriteLine("Mem {0}", GC.GetTotalMemory(false));
            GC.Collect(0);
            Console.WriteLine("Gen {0}", GC.GetGeneration(vc1));
            Console.WriteLine("Mem {0}", GC.GetTotalMemory(false));
            GC.Collect(2);
            Console.WriteLine("Gen {0}", GC.GetGeneration(vc1));
            Console.WriteLine("Mem {0}", GC.GetTotalMemory(false));


            VehicleCollection vc2 = null;

            Console.WriteLine("\nNext");
            Console.WriteLine("Mem {0}", GC.GetTotalMemory(false));
            for (int j = 0; j < 10; j++)
            {
                vc2 = new VehicleCollection();
            }
            vc2 = null;
            Console.WriteLine("Mem {0}", GC.GetTotalMemory(false));
            GC.Collect();
            Console.WriteLine("Mem {0}", GC.GetTotalMemory(false));
            GC.WaitForPendingFinalizers();

            Console.WriteLine("");
            WeakReferenceTracker tracker = new WeakReferenceTracker(new Data(10), false);

            tracker.ReferenceDied +=
                () => Console.WriteLine("Reference is dead");

            GC.Collect(0);
            Thread.Sleep(100);

            GC.KeepAlive(tracker);

            Console.WriteLine("\nPress any key");
            Console.ReadKey();
        }
Пример #22
0
 public CreateCommand(VehicleCollection collection)
 {
     _collection = collection;
 }
Пример #23
0
        static void Main(string[] args)
        {
            uint state = 0;
            char key;
            bool fail;

            string[] types = { "Auto:", "Motorka:", "Letadlo:", "Lod:" };

            //nacteni dat z XML, pokud existuje
            VehicleCollection col = XMLS.Load();

            SimpleDelegate simpleDelegate = new SimpleDelegate(col.Check);


            /// <summary>
            /// vypisy menu
            /// </summary>
            while (state != 5)
            {
                switch (state)
                {
                case 0:               //hlavni menu
                    simpleDelegate(); //kontrola, zda neni treba prevest nejake vozidlo do srotu
                    Console.Clear();
                    Console.WriteLine("HLAVNI MENU");
                    Console.WriteLine("");
                    Console.WriteLine("1. Seznam vozidel");
                    Console.WriteLine("2. Seznam vozidel k sesrotovani");
                    Console.WriteLine("3. Pridat nove vozidlo");
                    Console.WriteLine("4. Vymazat vozidlo");
                    Console.WriteLine("5. Konec aplikace");
                    Console.WriteLine("");
                    key = Console.ReadKey().KeyChar;
                    switch (key)
                    {
                    case '1':
                        state = 1;
                        break;

                    case '2':
                        state = 2;
                        break;

                    case '3':
                        state = 3;
                        break;

                    case '4':
                        state = 4;
                        break;

                    case '5':
                        state = 5;
                        break;
                    }
                    break;

                case 1:     //vypise seznam vozidel
                    Console.Clear();
                    Console.WriteLine("Seznam vozidel:");
                    Console.WriteLine("");
                    double overallValue = 0;
                    int    count        = 0;
                    foreach (Vehicle v in col.scrapList)
                    {
                        count++;
                        Console.WriteLine(types[v.Type - 1]);
                        Console.WriteLine("Datum porizeni: {0}", v.Date.Date.ToString("d"));
                        Console.WriteLine("Znacka:         {0}", v.Brand);
                        Console.WriteLine("Pocet sedadel:  {0}", v.SeatsNumber);
                        Console.WriteLine("Spotreba:       {0}", v.Usage);
                        Console.WriteLine("Puvodni cena:   {0}", Math.Round((decimal)v.OriginalValue, 2));
                        Console.WriteLine("Aktualni cena:  {0}", Math.Round(v.ActualValue, 2));
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                    foreach (Vehicle v in col.vehicleList)
                    {
                        count++;
                        overallValue += v.ActualValue;
                        Console.WriteLine(types[v.Type - 1]);
                        Console.WriteLine("Datum porizeni: {0}", v.Date.Date.ToString("d"));
                        Console.WriteLine("Znacka:         {0}", v.Brand);
                        Console.WriteLine("Pocet sedadel:  {0}", v.SeatsNumber);
                        Console.WriteLine("Spotreba:       {0}", v.Usage);
                        Console.WriteLine("Puvodni cena:   {0}", Math.Round((decimal)v.OriginalValue, 2));
                        Console.WriteLine("Aktualni cena:  {0}", Math.Round(v.ActualValue, 2));
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                    Console.WriteLine("Celkova hodnota: {0}Kc", overallValue);
                    Console.WriteLine("Celkem vozidel: {0}ks", count);
                    Console.WriteLine("");
                    Console.WriteLine("1. Zpet");
                    Console.WriteLine("");
                    key = Console.ReadKey().KeyChar;
                    if (key == '1')
                    {
                        state = 0;
                    }
                    break;

                case 2:     //vypise seznam vozidel k sesrotovani
                    Console.Clear();
                    Console.WriteLine("Seznam vozidel k sesrotovani:");
                    Console.WriteLine("");
                    foreach (Vehicle v in col.scrapList)
                    {
                        Console.WriteLine(types[v.Type - 1]);
                        Console.WriteLine("Datum porizeni: {0}", v.Date.Date.ToString("d"));
                        Console.WriteLine("Znacka:         {0}", v.Brand);
                        Console.WriteLine("Pocet sedadel:  {0}", v.SeatsNumber);
                        Console.WriteLine("Spotreba:       {0}", v.Usage);
                        Console.WriteLine("Puvodni cena:   {0}", Math.Round((decimal)v.OriginalValue, 2));
                        Console.WriteLine("Aktualni cena:  {0}", Math.Round(v.ActualValue, 2));
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                    Console.WriteLine("1. Zpet");
                    Console.WriteLine("");
                    key = Console.ReadKey().KeyChar;
                    if (key == '1')
                    {
                        state = 0;
                    }
                    break;

                case 3:     //pridani noveho vozidla
                    Console.Clear();
                    Console.WriteLine("Pridat nove vozidlo:");
                    Console.WriteLine("");

                    int type;
                    do
                    {
                        Console.Write("Typ vozidla (1: Auto, 2: Motorka, 3: Letadlo, 4: Lod): ");
                        type = Console.ReadKey().KeyChar - '0';
                        Console.WriteLine("");
                    } while (type < 1 || type > 4);
                    Console.WriteLine("");

                    DateTime date;
                    do
                    {
                        Console.Write("Datum porizeni: ");
                    } while (!DateTime.TryParse(Console.ReadLine(), out date) || date.CompareTo(DateTime.Now) > 0);
                    Console.WriteLine("");

                    Console.Write("Znacka: ");
                    string brand = Console.ReadLine();
                    Console.WriteLine("");

                    int seatsNumber = 0;
                    do
                    {
                        fail = false;
                        try
                        {
                            Console.Write("Pocet sedadel: ");
                            seatsNumber = Convert.ToInt32(Console.ReadLine());
                            if (seatsNumber < 0)
                            {
                                fail = true;
                            }
                        }
                        catch (FormatException)
                        {
                            fail = true;
                        }
                        catch (OverflowException)
                        {
                            fail = true;
                        }
                    } while (fail);
                    Console.WriteLine();

                    int usage = 0;
                    do
                    {
                        fail = false;
                        try
                        {
                            Console.Write("Spotreba na 100km: ");
                            usage = Convert.ToInt32(Console.ReadLine());
                            if (usage < 0)
                            {
                                fail = true;
                            }
                        }
                        catch (FormatException)
                        {
                            fail = true;
                        }
                        catch (OverflowException)
                        {
                            fail = true;
                        }
                    } while (fail);
                    Console.WriteLine();

                    int originalValue = 0;
                    do
                    {
                        fail = false;
                        try
                        {
                            Console.Write("Puvodni hodnota: ");
                            originalValue = Convert.ToInt32(Console.ReadLine());
                            if (originalValue < 0)
                            {
                                fail = true;
                            }
                        }
                        catch (FormatException)
                        {
                            fail = true;
                        }
                        catch (OverflowException)
                        {
                            fail = true;
                        }
                    } while (fail);
                    Console.WriteLine("");

                    if (type == 1)
                    {
                        Car newVehicle = new Car(date, originalValue, brand, seatsNumber, usage);
                        col.Add(newVehicle);
                    }
                    else if (type == 2)
                    {
                        Motorcycle newVehicle = new Motorcycle(date, originalValue, brand, seatsNumber, usage);
                        col.Add(newVehicle);
                    }
                    else if (type == 3)
                    {
                        Plane newVehicle = new Plane(date, originalValue, brand, seatsNumber, usage);
                        col.Add(newVehicle);
                    }
                    else
                    {
                        Ship newVehicle = new Ship(date, originalValue, brand, seatsNumber, usage);
                        col.Add(newVehicle);
                    }
                    Console.WriteLine("");
                    Console.WriteLine("Vozidlo uspesne pridano!");
                    Console.WriteLine("");
                    Console.Write("Press any key to continue...");
                    Console.ReadKey();
                    state = 0;
                    break;

                case 4:     //smazani vozidla
                    Console.Clear();
                    Console.WriteLine("Vymazat vozidlo:");
                    Console.WriteLine("");

                    int i = 0;
                    int j = 0;

                    foreach (Vehicle v in col.scrapList)
                    {
                        i++;
                        Console.WriteLine("{0}. " + types[v.Type - 1], i);
                        Console.WriteLine("Datum porizeni: {0}", v.Date.Date.ToString("d"));
                        Console.WriteLine("Znacka:         {0}", v.Brand);
                        Console.WriteLine("Pocet sedadel:  {0}", v.SeatsNumber);
                        Console.WriteLine("Spotreba:       {0}", v.Usage);
                        Console.WriteLine("Puvodni cena:   {0}", Math.Round((decimal)v.OriginalValue, 2));
                        Console.WriteLine("Aktualni cena:  {0}", Math.Round(v.ActualValue, 2));
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                    foreach (Vehicle v in col.vehicleList)
                    {
                        j++;
                        Console.WriteLine("{0}. " + types[v.Type - 1], i + j);
                        Console.WriteLine("Datum porizeni: {0}", v.Date.Date.ToString("d"));
                        Console.WriteLine("Znacka:         {0}", v.Brand);
                        Console.WriteLine("Pocet sedadel:  {0}", v.SeatsNumber);
                        Console.WriteLine("Spotreba:       {0}", v.Usage);
                        Console.WriteLine("Puvodni cena:   {0}", Math.Round((decimal)v.OriginalValue, 2));
                        Console.WriteLine("Aktualni cena:  {0}", Math.Round(v.ActualValue, 2));
                        Console.WriteLine();
                        Console.WriteLine();
                    }
                    Console.WriteLine("{0}. Zpet", i + j + 1);
                    Console.WriteLine("");

                    int number = 0;
                    do
                    {
                        fail = false;
                        try
                        {
                            number = Convert.ToInt32(Console.ReadLine());
                            if (number < 1 || number > i + j + 1)
                            {
                                fail = true;
                            }
                        }
                        catch (FormatException)
                        {
                            fail = true;
                        }
                        catch (OverflowException)
                        {
                            fail = true;
                        }
                    } while (fail);

                    if (number < i + j + 1)
                    {
                        if (number > i)
                        {
                            col.scrapList.RemoveAt(number - i - 1);
                        }
                        else
                        {
                            col.vehicleList.RemoveAt(number - 1);
                        }
                        Console.WriteLine("");
                        Console.WriteLine("Vozidlo uspesne vymazano!");
                        Console.WriteLine("");
                        Console.Write("Press any key to continue...");
                        Console.ReadKey();
                    }

                    state = 0;
                    break;
                }
            }

            //ulozi aktualni stav do xml souboru
            if (!XMLS.Save(col))
            {
                Console.WriteLine("Nepodarilo se ulozit do souboru.");
            }
        }
Пример #24
0
 // GET: Vehicles
 public ActionResult Index()
 {
     return(View(VehicleCollection.LoadAll()));
 }
Пример #25
0
 public DeleteCommand(VehicleCollection collection)
 {
     _collection = collection;
 }
Пример #26
0
 public GetByIdQuery(VehicleCollection collection)
 {
     _collection = collection;
 }
Пример #27
0
 public GetAllQuery(VehicleCollection collection)
 {
     _collection = collection;
 }
Пример #28
0
        /*
         * In here I'm changing the prefabs to have my classes. This way, every time the game instantiates
         * a prefab that I've changed, that object will run my code.
         * The prefabs aren't available at the moment of creation of this class, that's why I keep trying to
         * run it on update. I want to make sure I make the switch as soon as they exist to prevent the game
         * from instantianting objects without my code.
         */
        void TryReplacePrefabs()
        {
            NetCollection       beautificationNetCollection        = null;
            NetCollection       roadsNetCollection                 = null;
            NetCollection       publicTansportNetCollection        = null;
            VehicleCollection   garbageVehicleCollection           = null;
            VehicleCollection   policeVehicleCollection            = null;
            VehicleCollection   publicTansportVehicleCollection    = null;
            VehicleCollection   healthCareVehicleCollection        = null;
            VehicleCollection   fireDepartmentVehicleCollection    = null;
            VehicleCollection   industrialVehicleCollection        = null;
            TransportCollection publicTransportTransportCollection = null;
            ToolController      toolController = null;

            try
            {
                // NetCollections
                beautificationNetCollection = TryGetComponent <NetCollection>("Beautification");
                if (beautificationNetCollection == null)
                {
                    return;
                }

                roadsNetCollection = TryGetComponent <NetCollection>("Road");
                if (roadsNetCollection == null)
                {
                    return;
                }

                publicTansportNetCollection = TryGetComponent <NetCollection>("Public Transport");
                if (publicTansportNetCollection == null)
                {
                    return;
                }

                // VehicleCollections
                garbageVehicleCollection = TryGetComponent <VehicleCollection>("Garbage");
                if (garbageVehicleCollection == null)
                {
                    return;
                }

                policeVehicleCollection = TryGetComponent <VehicleCollection>("Police Department");
                if (policeVehicleCollection == null)
                {
                    return;
                }

                publicTansportVehicleCollection = TryGetComponent <VehicleCollection>("Public Transport");
                if (publicTansportVehicleCollection == null)
                {
                    return;
                }

                healthCareVehicleCollection = TryGetComponent <VehicleCollection>("Health Care");
                if (healthCareVehicleCollection == null)
                {
                    return;
                }

                fireDepartmentVehicleCollection = TryGetComponent <VehicleCollection>("Fire Department");
                if (fireDepartmentVehicleCollection == null)
                {
                    return;
                }

                industrialVehicleCollection = TryGetComponent <VehicleCollection>("Industrial");
                if (industrialVehicleCollection == null)
                {
                    return;
                }

                // Transports
                publicTransportTransportCollection = TryGetComponent <TransportCollection>("Public Transport");
                if (publicTransportTransportCollection == null)
                {
                    return;
                }

                // Tools
                toolController = TryGetComponent <ToolController>("Tool Controller");
                if (toolController == null)
                {
                    return;
                }
            }
            catch (Exception e)
            {
                Debug.Log("Traffic++: Unexpected " + e.GetType().Name + " getting required components: " + e.Message + "\n" + e.StackTrace + "\n");
                return;
            }

            Debug.Log("Traffic++: Queueing prefabs for loading...");

            Singleton <LoadingManager> .instance.QueueLoadingAction(ActionWrapper(() =>
            {
                try
                {
                    // roads
                    ZonablePedestrianPathAI.Initialize(beautificationNetCollection, transform);
                    ZonablePedestrianBridgeAI.Initialize(beautificationNetCollection, transform);
                    LargeRoadWithBusLanesAI.Initialize(roadsNetCollection, transform);
                    LargeRoadWithBusLanesBridgeAI.Initialize(roadsNetCollection, transform);

                    if ((CSLTraffic.Options & OptionsManager.ModOptions.GhostMode) != OptionsManager.ModOptions.GhostMode)
                    {
                        // Transports
                        BusTransportLineAI.Initialize(publicTansportNetCollection, publicTansportVehicleCollection, publicTransportTransportCollection, transform);

                        // vehicles
                        CustomAmbulanceAI.Initialize(healthCareVehicleCollection, transform);
                        CustomBusAI.Initialize(publicTansportVehicleCollection, transform);
                        CustomCargoTruckAI.Initialize(industrialVehicleCollection, transform);
                        CustomFireTruckAI.Initialize(fireDepartmentVehicleCollection, transform);
                        CustomGarbageTruckAI.Initialize(garbageVehicleCollection, transform);
                        CustomHearseAI.Initialize(healthCareVehicleCollection, transform);
                        CustomPoliceCarAI.Initialize(policeVehicleCollection, transform);

                        //Tools
                        CustomTransportTool.Initialize(toolController);
                    }

                    // Localization
                    UpdateLocalization();

                    AddQueuedActionsToLoadingQueue();
                }
                catch (KeyNotFoundException knf)
                {
                    Debug.Log("Traffic++: Error initializing a prefab: " + knf.Message + "\n" + knf.StackTrace + "\n");
                }
                catch (Exception e)
                {
                    Debug.Log("Traffic++: Unexpected " + e.GetType().Name + " initializing prefabs: " + e.Message + "\n" + e.StackTrace + "\n");
                }
            }));

            m_initialized = true;

            Debug.Log("Traffic++: Prefabs queued for loading.");
        }
Пример #29
0
 public VehicleManager()
 {
     Vehicles = new VehicleCollection();
     VehicleInstances = new VehicleInstanceCollection();
 }