コード例 #1
0
ファイル: JobController.cs プロジェクト: Genae/VoxelEngine
 public void SolveJob(PositionedJob job)
 {
     if (Jobs[(int)job.Position.x, (int)job.Position.y, (int)job.Position.z] != null)
     {
         Jobs[(int)job.Position.x, (int)job.Position.y, (int)job.Position.z].Remove(job);
     }
 }
コード例 #2
0
 public void Update(float dTime)
 {
     if (Stage == 0)
     {
         if (!JobController.Instance.HasJob(Position + Vector3.up, "PlantCrop"))
         {
             _currentJob = new PlantCropJob(this);
             JobController.Instance.AddJob(_currentJob);
         }
     }
     else
     {
         TimeToGrow -= dTime;
         if (TimeToGrow <= 0 && Stage < Type.GrowStages.Count)
         {
             Stage += 1;
             if (Stage == Type.GrowStages.Count)
             {
                 if (!JobController.Instance.HasJob(Position + Vector3.up, "HarvestCrop"))
                 {
                     _currentJob = new HarvestCropJob(this);
                     JobController.Instance.AddJob(_currentJob);
                 }
             }
         }
     }
 }
コード例 #3
0
ファイル: JobController.cs プロジェクト: Genae/VoxelEngine
 public void AddJob(PositionedJob job)
 {
     if (Jobs == null)
     {
         if (!Map.Instance.IsDoneGenerating)
         {
             return;
         }
         Jobs = new List <PositionedJob> [Map.Instance.MapData.Chunks.GetLength(0) * Chunk.ChunkSize,
                                          Map.Instance.MapData.Chunks.GetLength(1) * Chunk.ChunkSize,
                                          Map.Instance.MapData.Chunks.GetLength(2) * Chunk.ChunkSize];
     }
     if (!OpenJobs.ContainsKey(job.GetJobType()))
     {
         OpenJobs.Add(job.GetJobType(), new PriorityQueue <PositionedJob>());
     }
     OpenJobs[job.GetJobType()].Enqueue(job, 1);
     if (Jobs[(int)job.Position.x, (int)job.Position.y, (int)job.Position.z] == null)
     {
         Jobs[(int)job.Position.x, (int)job.Position.y, (int)job.Position.z] = new List <PositionedJob>();
     }
     Jobs[(int)job.Position.x, (int)job.Position.y, (int)job.Position.z].Add(job);
 }
コード例 #4
0
ファイル: JobController.cs プロジェクト: Genae/VoxelEngine
 public void AcceptJob(PositionedJob job)
 {
     OpenJobs[job.GetJobType()].Dequeue(job);
 }