Exemple #1
0
        public IPlanet Create(DoubleVector3 location, double radius)
        {
            // TODO: should we inject into the factory everything it will need to inject
            // into the planets?  That reduces calls to the container but makes an assumption
            // about dependency lifetimes.

            var terrain    = _terrainFactory.Create(radius);
            var renderer   = CreateRenderer(radius);
            var generator  = ObjectFactory.GetInstance <IHeightfieldGenerator>();
            var statistics = ObjectFactory.GetInstance <Statistics>();

            var planet = new Planet(location, radius, terrain, renderer, generator, _settings, statistics);

            return(planet);
        }
        public SimpleFixedTerrainLayer(ISet<ITerrain> terrains,
                                       ITerrainFactory<Hills> hillsFactory,
                                       ITerrainFactory<Mountains> mountainsFactory,
                                       ITerrainFactory<Oceans> oceansFactory,
                                       ITerrainFactory<Plains> plainsFactory)
        {
            Terrains = terrains;
            this.plainsFactory = plainsFactory;

            Terrains.Add(hillsFactory.Create(HillsTile));
            Terrains.Add(mountainsFactory.Create(MountainsTile));
            Terrains.Add(oceansFactory.Create(OceansTile));
            
            AddRemainingPlains();
        }