public static RenderThreadTask BuildChunk(int chunkX, int chunkZ, PositionInfo info) { //Initialize the thread data RenderThreadTask task = new RenderThreadTask(); task.chunkX = chunkX; task.chunkZ = chunkZ; task.LODLevel = info.LODLevel; task.regions = regions; task.regionSize = regionSize; task.chunkSize = info.chunkSize; //Check if its already a file Chunk chunk = null; if (Serialize.ChunkIsOnDisk(chunkX, chunkZ)) { chunk = Serialize.LoadChunk(chunkX, chunkZ); } task.chunk = chunk; //Start thread ThreadPool.QueueUserWorkItem(task.CreateMeshData); return(task); }