public void ProvideChunk(int x, int z, Chunk chunk, bool recalculate) { InitGen(); byte[] data = new byte[32768]; Stopwatch watch = new Stopwatch(); watch.Start(); GenerateTerrain(chunk, data, x, z); GenerateFlora(chunk, data, x, z); chunk.SetAllBlocks(data); watch.Stop(); if(recalculate) chunk.Recalculate(); Console.WriteLine("Chunk {0} {1}, {2}", x, z, watch.ElapsedMilliseconds); //chunk.Save(); _World.AddChunk(chunk); chunk.MarkToSave(); }
public Chunk ProvideChunk(int x, int z, WorldManager world) { Chunk chunk = new Chunk(world, UniversalCoords.FromChunk(x, z)); InitGen(); byte[] data = new byte[32768]; #if PROFILE Stopwatch watch = new Stopwatch(); watch.Start(); #endif GenerateTerrain(chunk, data, x, z); GenerateFlora(chunk, data, x, z); chunk.SetAllBlocks(data); chunk.RecalculateHeight(); chunk.LightToRecalculate = true; #if PROFILE watch.Stop(); _World.Logger.Log(Logger.LogLevel.Info, "Chunk {0} {1}, {2}", false, x, z, watch.ElapsedMilliseconds); #endif _World.AddChunk(chunk); chunk.MarkToSave(); return chunk; }