Example #1
0
 public AdminController(AdminUseCases adminUseCases, TransactionBuilder transactionBuilder, UserBuilder userBuilder, ProvinceBuilder provinceBuilder)
 {
     _adminUseCases      = adminUseCases;
     _transactionBuilder = transactionBuilder;
     _userBuilder        = userBuilder;
     _provinceBuilder    = provinceBuilder;
 }
        public static IList<RawProvince> Provinces(string text)
        {
            IList<RawProvince> provinces = new List<RawProvince>();

            ProvinceBuilder provBuilder = new ProvinceBuilder();
            PolygonBuilder  polyBuilder = new PolygonBuilder();

            foreach (string line in Lines(text))
            {
                Vector2[] vectors;

                switch (line[0])
                {
                case '§':  // New province
                    if (provBuilder.Tag != "")
                    {
                        provBuilder.Polys.Add(polyBuilder.Build());
                        provinces.Add(provBuilder.Build());
                    }

                    string[] tokens = line.Split(' ');
                    provBuilder.Tag = tokens[0].Substring(1);

                    if (!TryParseHexColor(tokens[1], out provBuilder.Color))
                    {
                        Console.Error.WriteLine("Failed to parse color: " + tokens[1]);
                    }
                    break;
                case '\\': // New hole to existing polygon
                    vectors = ParseVectors(line.Substring(1));
                    polyBuilder.Holes.Add(new Poly(vectors));
                    break;
                default:   // New polygon
                    vectors = ParseVectors(line);

                    if (polyBuilder.Outline != null)
                    {
                        provBuilder.Polys.Add(polyBuilder.Build());
                    }

                    polyBuilder.Outline = new Poly(vectors);
                    break;
                }
            }

            provBuilder.Polys.Add(polyBuilder.Build());
            provinces.Add(provBuilder.Build());
            return provinces;
        }