コード例 #1
0
ファイル: ChunkManager.cs プロジェクト: thexdesk/mist-ridge
        private List <Sprint> SpawnSprints()
        {
            List <Sprint> sprints = new List <Sprint>();

            lastSprint = null;

            int currentChunkNum = chunkCount - 1;

            foreach (SprintRequest sprintRequest in settings.sprintRequests)
            {
                SprintRequest currentSprintRequest = new SprintRequest()
                {
                    chunkCount         = sprintRequest.chunkCount,
                    startChunkNum      = currentChunkNum,
                    totalChunkCount    = chunkCount,
                    checkpointOverride = false
                };

                if (sprints.Count == settings.sprintRequests.Count - 1)
                {
                    currentSprintRequest.checkpointOverride = true;
                }

                currentChunkNum -= sprintRequest.chunkCount;

                Sprint sprint = sprintFactory.Create(currentSprintRequest);

                if (lastSprint == null)
                {
                    checkpointManager.CurrentCheckpoint = sprint.Checkpoint;
                }
                else
                {
                    lastSprint.Checkpoint.NextCheckpoint = sprint.Checkpoint;
                }

                if (sprints.Count == settings.sprintRequests.Count - 1)
                {
                    secondLastSprint = lastSprint;
                }
                lastSprint = sprint;

                sprints.Add(sprint);
            }

            return(sprints);
        }
コード例 #2
0
ファイル: SprintFactory.cs プロジェクト: thexdesk/mist-ridge
        public Sprint Create(SprintRequest sprintRequest)
        {
            List <ChunkFacade> chunkFacades = SpawnChunkFacades(sprintRequest);

            Checkpoint checkpoint = null;

            if (!sprintRequest.checkpointOverride)
            {
                checkpoint = SpawnCheckpoint(sprintRequest);
            }

            List <TypeValuePair> args = new List <TypeValuePair>();

            args.Add(InstantiateUtil.CreateTypePair <List <ChunkFacade> >(chunkFacades));
            args.Add(InstantiateUtil.CreateTypePair <Checkpoint>(checkpoint));
            Sprint sprint = container.InstantiateExplicit <Sprint>(args);

            sprint.Initialize();

            return(sprint);
        }