public SkyIslandMapChunkStorePopulator(
            IChunkStore <ChunkOverheadKey, SerializedSkyIslandMapChunk> store,
            IChunkPersister <ISkyIslandMapChunk, SerializedSkyIslandMapChunk> persister,
            IChunkPopulator <ISkyIslandMapChunk> fallback)
        {
            Contracts.Requires.That(store != null);
            Contracts.Requires.That(persister != null);
            Contracts.Requires.That(fallback != null);

            this.store     = store;
            this.persister = persister;
            this.fallback  = fallback;
        }
        public VoxelGridChunkStorePopulator(
            IChunkStore <ChunkKey, SerializedVoxelGridChunk> store,
            IChunkPersister <IVoxelGridChunk, SerializedVoxelGridChunk> persister,
            IChunkPopulator <IVoxelGridChunk> fallback)
        {
            Contracts.Requires.That(store != null);
            Contracts.Requires.That(persister != null);
            Contracts.Requires.That(fallback != null);

            this.store     = store;
            this.persister = persister;
            this.fallback  = fallback;
        }
    public static IAsyncChunkPopulator <TChunk> WrapWithAsync <TChunk>(this IChunkPopulator <TChunk> populator)
    {
        Contracts.Requires.That(populator != null);

        return(new AsyncChunkPopulator <TChunk>(populator));
    }
        public AsyncChunkPopulator(IChunkPopulator <TChunk> populator)
        {
            Contracts.Requires.That(populator != null);

            this.populator = populator;
        }