Exemple #1
0
        private Chunk DoLighting(Chunk chunk)
        {
            lock (this)
            {
                //Debug.WriteLine("DoLighting " + chunk);

                //TODO chunk happens to be null here sometime : it was not null when enqueued , it became null after
                // => cancel this lighting
                if (chunk == null)
                {
                    return(null);
                }

                if (chunk.State == ChunkState.AwaitingLighting)
                {
                    chunk.State = ChunkState.Lighting;
                    _lightingChunkProcessor.ProcessChunk(chunk);
                    chunk.State = ChunkState.AwaitingBuild;
                }
                else if (chunk.State == ChunkState.AwaitingRelighting)
                {
                    chunk.State = ChunkState.Lighting;
                    _lightingChunkProcessor.ProcessChunk(chunk);
                    chunk.State = ChunkState.AwaitingBuild;
                    QueueBuild(chunk.Index);
                }
                return(chunk);
            }
        }
 private Chunk DoLighting(Chunk chunk)
 {
     _lightingChunkProcessor.ProcessChunk(chunk);
     return(chunk);
 }