public void Dispose() { if (disposed) { return; } disposed = true; backgroundThread.Abort(); backgroundThread2.Abort(); foreach (var thread in _additionalRegenerationThreads) { thread.Abort(); } foreach (var cr in chunkRenderer) { cr.Dispose(); } foreach (var cr in orderedChunkRenderer) { cr.Dispose(); } chunkRenderer = null; orderedChunkRenderer.Clear(); localChunkCache = null; selectionIndexBuffer.Dispose(); selectionLines.Dispose(); billboardVertexbuffer.Dispose(); player = null; camera = null; assets = null; entities = null; planet = null; sunEffect.Dispose(); selectionEffect.Dispose(); blockTextures.Dispose(); sunTexture.Dispose(); }