Example #1
0
        private List <ChunkFacade> SpawnChunkFacades(SprintRequest sprintRequest)
        {
            List <ChunkFacade> chunkFacades = new List <ChunkFacade>();

            int chunkNum    = sprintRequest.startChunkNum;
            int endChunkNum = chunkNum - sprintRequest.chunkCount;

            int offset = sprintRequest.checkpointOverride ? 0 : 1;

            for (; chunkNum > endChunkNum + offset; --chunkNum)
            {
                ChunkRequest chunkRequest = new ChunkRequest()
                {
                    chunkNum          = chunkNum,
                    chunkCount        = sprintRequest.totalChunkCount,
                    sprintEndChunkNum = endChunkNum + 1,
                    biome             = biomePickingStrategy.Pick(biomes, altitude),
                };

                ChunkFacade chunkFacade = chunkFacadeFactory.Create(chunkRequest);
                altitude = chunkFacade.Position.y;

                chunkFacades.Add(chunkFacade);
            }

            return(chunkFacades);
        }
Example #2
0
        public Checkpoint Create(ChunkRequest chunkRequest, float altitude)
        {
            ChunkRequest checkpointRequest = new ChunkRequest()
            {
                chunkNum          = chunkRequest.chunkNum,
                chunkCount        = chunkRequest.chunkCount,
                sprintEndChunkNum = chunkRequest.sprintEndChunkNum,
                biome             = biomePickingStrategy.Pick(biomes, altitude),
            };

            ChunkFacade chunkFacade = chunkFacadeFactory.Create(checkpointRequest);
            Checkpoint  checkpoint  = container.Instantiate <Checkpoint>(checkpointNum, chunkFacade);

            checkpointNum++;

            checkpoint.Initialize();

            return(checkpoint);
        }