Ejemplo n.º 1
0
 public void Dispose()
 {
     if (m_mbuf != null)
     {
         m_mbuf.Dispose();
     }
 }
Ejemplo n.º 2
0
        public void Unload()
        {
            if (isDisposed)
            {
                return;
            }

            if (RootChunk != null)
            {
                Log.Trace("Saving and closing world...");
                foreach (var chunk in RootChunk)
                {
                    chunk.Unlock();
                    chunk.ChangeAvailability(ChunkAvailability.None);
                    chunk.Update(TimeSpan.Zero);
                }

                bool unsavedChunksLeft = false;
                do
                {
                    Thread.Sleep(1000);
                    foreach (var chunk in RootChunk)
                    {
                        chunk.Update(TimeSpan.Zero);
                        unsavedChunksLeft |=
                            chunk.Availability != ChunkAvailability.None;
                    }
                } while (unsavedChunksLeft);

                Log.Trace("All chunks saved.");
            }

            skyboxTexture?.Dispose();
            skyboxMesh?.Dispose();
            zipFileSystem?.Dispose();

            isDisposed = true;
        }