예제 #1
0
        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();
        }