public void Dispose() { if (m_mbuf != null) { m_mbuf.Dispose(); } }
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; }