Example #1
0
        private async Task <List <Crag> > GetCragsInfo(IElement areaA)
        {
            var crags = new List <Crag>();

            var areaSource = await this.client.GetStringAsync(Host + areaA.GetAttribute("href"));

            var areaDocument = await this.context.OpenAsync(req => req.Content(areaSource));

            var cragAnchors = areaDocument.QuerySelectorAll("tbody tr td:nth-child(1) a.name");

            foreach (var cragA in cragAnchors)
            {
                var crag = new Crag()
                {
                    Name = cragA.TextContent.ToLowerInvariant(),
                };

                Console.WriteLine($"----Adding crag: '{crag.Name}'");
                crags.Add(crag);

                var sectors = await this.GetSectorsInfo(cragA);

                sectors.ForEach(x => crag.Sectors.Add(x));
            }

            return(crags);
        }
Example #2
0
        public static Crag GetCrag(int cragId)
        {
            Crag crag = null;

            if (CragExists(cragId))
            {
                crag = Crags[cragId];
            }
            return(crag);
        }
Example #3
0
        public static Crag GetCragOnlyByName(string name, string category)
        {
            Crag crag = null;

            name = name.ToLower().Trim();
            var cacheKey = string.Join("-", new object[] { category, name.Trim().ToLower() });

            if (cragsCacheWithoutCountry.ContainsKey(cacheKey))
            {
                var cragId = cragsCacheWithoutCountry[cacheKey];
                crag = Crags[cragId];
            }

            return(crag);
        }
Example #4
0
        public static Crag GetCrag(string name, string category, int countryId)
        {
            Crag crag = null;

            name = name.ToLower().Trim();
            var cacheKey = string.Join("-", new object[] { category, name.Trim().ToLower(), countryId });

            if (cragsCache.ContainsKey(cacheKey))
            {
                var cragId = cragsCache[cacheKey];
                crag = Crags[cragId];
            }

            return(crag);
        }
Example #5
0
        // Constructor
        public VoxelWorld(int seed)
        {
            _biomes    = new IBiome[3];
            _biomes[0] = new RollingHills(seed);
            _biomes[1] = new Ocean(seed);
            _biomes[2] = new Crag(seed);

            // Configure Biome Map
            _biomeMap = new FastNoise(seed);
            _biomeMap.SetNoiseType(FastNoise.NoiseType.PerlinFractal);
            _biomeMap.SetFrequency(0.01f);
            //_biomeMap.SetCellularDistanceFunction(FastNoise.CellularDistanceFunction.Natural);
            //_biomeMap.SetCellularReturnType(FastNoise.CellularReturnType.Distance);

            _chunkMap = new ConcurrentDictionary <Vector2Int, Chunk>();
        }
Example #6
0
        public static void AddCrag(Crag crag)
        {
            CragCount++;
            Crags.Add(crag.Id.Value, crag);

            var cacheKey = string.Join("-", new object[] { crag.Category, crag.Name.ToLower(), crag.CountryId });

            cragsCache.Add(cacheKey, crag.Id.Value);

            var cacheKeyWithoutCountry = string.Join("-", new object[] { crag.Category, crag.Name.ToLower() });

            if (!cragsCacheWithoutCountry.ContainsKey(cacheKeyWithoutCountry))
            {
                cragsCacheWithoutCountry.Add(cacheKeyWithoutCountry, crag.Id.Value);
            }
        }