Beispiel #1
0
        public override Task OnActivateAsync()
        {
            _densityMap   = new float[5, 33, 5];
            _depthMap     = new float[5, 1, 5];
            _mainNoiseMap = new float[5, 33, 5];
            _minLimitMap  = new float[5, 33, 5];
            _maxLimitMap  = new float[5, 33, 5];
            _surfaceMap   = new float[16, 1, 16];

            _seed         = (int)this.GetPrimaryKeyLong();
            _random       = new Random(_seed);
            _depthNoise   = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _mainNoise    = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _maxNoise     = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _minNoise     = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);
            _surfaceNoise = new OctavedNoise <PerlinNoise>(new PerlinNoise(_random.Next()), 8, 0.5F);

            _biomeWeights = new float[5, 5];
            for (int i = -2; i <= 2; ++i)
            {
                for (int j = -2; j <= 2; ++j)
                {
                    float f = 10.0F / (float)Math.Sqrt((i * i + j * j) + 0.2D);
                    _biomeWeights[i + 2, j + 2] = f;
                }
            }

            _biomesForGeneration = new Biome[16, 16];

            _genlayer = GenLayer.InitAllLayer(_seed);

            return(Task.CompletedTask);
        }
Beispiel #2
0
        public void Test1()
        {
            using (StreamWriter sw = new StreamWriter("../../GenLayer.txt"))
            {
                GenLayer layer = GenLayer.InitAllLayer(1);
                int      x     = -4;
                int      z     = -4;
                int[,] biomeIds = layer.GetInts(16 * x - 16, 16 * z - 16, 48, 48);
                sw.WriteLine("pre: ");
                for (int i = 0; i < 48; ++i)
                {
                    for (int j = 0; j < 48; ++j)
                    {
                        sw.Write(biomeIds[i, j] + " ");
                    }

                    sw.WriteLine();
                }

                biomeIds = layer.GetInts(16 * x, 16 * z, 16, 16);
                sw.WriteLine("suc: ");
                for (int i = 0; i < 16; ++i)
                {
                    for (int j = 0; j < 16; ++j)
                    {
                        sw.Write(biomeIds[i, j] + " ");
                    }

                    sw.WriteLine();
                }
            }
        }