Esempio n. 1
0
        ///Wrap an object if wrapper available, within provided environment
        public static void Wrap(object o, Environment env)
        {
            var wrapper = DecoratorFactory.GetDecorator <IExpressionDecorator>(o);

            if (wrapper != null)
            {
                wrapper.Wrap(env);
            }
        }
Esempio n. 2
0
    public static async Task DecorateAsync(Chunk chunk, double[,] terrainHeightMap, OverworldTerrain ot, World world)
    {
        var noise = new TerrainNoise(ot.settings);

        for (int x = 0; x < 16; x++)
        {
            for (int z = 0; z < 16; z++)
            {
                var        b         = ChunkBiome.GetBiome((chunk.X << 4) + x, (chunk.Z << 4) + z, ot);
                var        blockPos  = new Vector(x, (int)terrainHeightMap[x, z], z);
                IDecorator decorator = DecoratorFactory.GetDecorator(b, chunk, blockPos, noise);

                decorator.Decorate();
                await GenerateTreesAsync(world, blockPos + (chunk.X << 4, 0, chunk.Z << 4), decorator.Features, noise);
                await GenerateFloraAsync(world, blockPos + (chunk.X << 4, 0, chunk.Z << 4), decorator.Features, noise);
            }
        }
    }