Ejemplo n.º 1
0
        static void ReadColours(CarList list, string csvPath)
        {
            using (TextReader colourInput = new StreamReader(csvPath, Encoding.UTF8))
            {
                using (CsvReader colourCsv = new CsvReader(colourInput))
                {
                    colourCsv.Configuration.RegisterClassMap <CarColourCSVMap>();

                    while (colourCsv.Read())
                    {
                        CarColourWithName newColourWithName = colourCsv.GetRecord <CarColourWithName>();
                        CarColour         newColour         = new CarColour
                        {
                            ThumbnailColour = newColourWithName.ThumbnailColour,
                            PaletteID       = newColourWithName.PaletteID,
                            JapaneseName    = newColourWithName.JapaneseName,
                            LatinName       = newColourWithName.LatinName
                        };
                        Car existingCar = list.Cars.Find(car => car.CarName == newColourWithName.CarName);
                        existingCar.Colours.Remove(existingCar.Colours.Where(colour => colour.PaletteID == newColour.PaletteID).SingleOrDefault());
                        if (newColour.JapaneseName != "Delete")
                        {
                            existingCar.Colours.Add(newColour);
                        }
                    }

                    foreach (Car car in list.Cars)
                    {
                        car.Colours = car.Colours.OrderBy(colour => colour.PaletteID).ToList();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        static void Dump()
        {
            CarList list = new CarList();

            list.ReadFromFiles();

            using (TextWriter output = new StreamWriter(File.Create("Cars.csv"), Encoding.UTF8))
            {
                using (CsvWriter csv = new CsvWriter(output))
                {
                    using (TextWriter colourOutput = new StreamWriter(File.Create("Colours.csv"), Encoding.UTF8))
                    {
                        using (CsvWriter colourCsv = new CsvWriter(colourOutput))
                        {
                            csv.Configuration.RegisterClassMap <CarCSVMap>();
                            csv.Configuration.QuoteAllFields = true;
                            csv.WriteHeader <Car>();

                            colourCsv.Configuration.RegisterClassMap <CarColourCSVMap>();
                            colourCsv.Configuration.QuoteAllFields = true;
                            colourCsv.WriteHeader <CarColourWithName>();

                            foreach (Car car in list.Cars)
                            {
                                csv.NextRecord();
                                csv.WriteRecord(car);

                                foreach (CarColour colour in car.Colours)
                                {
                                    CarColourWithName colourWithName = new CarColourWithName
                                    {
                                        CarName         = car.CarName,
                                        ThumbnailColour = colour.ThumbnailColour,
                                        PaletteID       = colour.PaletteID,
                                        JapaneseName    = colour.JapaneseName,
                                        LatinName       = colour.LatinName
                                    };

                                    colourCsv.NextRecord();
                                    colourCsv.WriteRecord(colourWithName);
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        static void Load()
        {
            CarList list = new CarList();

            list.Cars = new List <Car>();

            using (TextReader input = new StreamReader("Cars.csv", Encoding.UTF8))
            {
                using (CsvReader csv = new CsvReader(input))
                {
                    using (TextReader colourInput = new StreamReader("Colours.csv", Encoding.UTF8))
                    {
                        using (CsvReader colourCsv = new CsvReader(colourInput))
                        {
                            csv.Configuration.RegisterClassMap <CarCSVMap>();
                            colourCsv.Configuration.RegisterClassMap <CarColourCSVMap>();

                            while (csv.Read())
                            {
                                Car newCar = csv.GetRecord <Car>();
                                newCar.Colours = new List <CarColour>();
                                list.Cars.Add(newCar);
                            }

                            while (colourCsv.Read())
                            {
                                CarColourWithName newColourWithName = colourCsv.GetRecord <CarColourWithName>();
                                string            carName           = newColourWithName.CarName;
                                CarColour         newColour         = new CarColour
                                {
                                    ThumbnailColour = newColourWithName.ThumbnailColour,
                                    PaletteID       = newColourWithName.PaletteID,
                                    JapaneseName    = newColourWithName.JapaneseName,
                                    LatinName       = newColourWithName.LatinName
                                };
                                list.Cars.Find(car => car.CarName == carName).Colours.Add(newColour);
                            }
                        }
                    }
                }
            }

            list.SaveToFiles();
        }
Ejemplo n.º 4
0
        static void Dump()
        {
            CarList list = new CarList();

            list.ReadFromFiles();

            using (TextWriter output = new StreamWriter(File.Create("CarColours.txt"), Encoding.UTF8))
            {
                foreach (Car car in list.Cars)
                {
                    output.WriteLine($"{car.CarName} ({car.JPName} / {car.USName} / {car.EUName})");
                    output.WriteLine();
                    output.WriteLine("==Colors==");
                    if (car.Colours.Count > 1)
                    {
                        output.Write($"There are {GetNumber(car.Colours.Count)} colors");
                    }
                    else
                    {
                        output.Write($"There is only one color");
                    }
                    output.Write(" available for this vehicle");

                    bool hasColourNames = false;
                    foreach (CarColour colour in car.Colours)
                    {
                        if (!string.IsNullOrWhiteSpace(colour.LatinName))
                        {
                            hasColourNames = true;
                            break;
                        }
                    }

                    if (!hasColourNames)
                    {
                        if (car.Colours.Count > 1)
                        {
                            output.Write($", they are");
                        }
                        else
                        {
                            output.Write($", it is");
                        }
                        output.Write($" unnamed in-game");
                    }

                    output.WriteLine($":");

                    foreach (CarColour colour in car.Colours)
                    {
                        CarColourWithName colourWithName = new CarColourWithName
                        {
                            CarName         = car.CarName,
                            ThumbnailColour = colour.ThumbnailColour,
                            PaletteID       = colour.PaletteID,
                            JapaneseName    = colour.JapaneseName,
                            LatinName       = colour.LatinName
                        };

                        output.WriteLine($"*{{{{ColorSquare|{colour.HexColour}}}}}{(string.IsNullOrWhiteSpace(colour.LatinName) ? "" : " " + colour.LatinName)}");
                    }

                    output.WriteLine();
                    output.WriteLine();
                }
            }
        }