1namespace Kestrel.Framework.Client.Graphics.Buffers;
2
3public class ChunkMeshManager
4{
5 readonly List<ChunkMesh> chunkMeshGenerationQueue = [];
6
7
8 public void QueueGeneration(ChunkMesh chunkMesh)
9 {
10 chunkMeshGenerationQueue.Add(chunkMesh);
11 }
12
13 public void GenerateFromQueueUnderTimeLimit(int milliseconds)
14 {
15 DateTime started = DateTime.Now;
16
17 TimeSpan elapsed = DateTime.Now - started;
18 while (elapsed.Milliseconds < milliseconds && chunkMeshGenerationQueue.Count > 0)
19 {
20 elapsed = DateTime.Now - started;
21 ChunkMesh chunkMesh = chunkMeshGenerationQueue[0];
22 chunkMeshGenerationQueue.RemoveAt(0);
23 chunkMesh.Generate();
24 }
25 }
26}