/// <summary> /// Sync only. /// </summary> public void Destroy() { if (FCO != null && IsAdded) { OwningRegion.RemoveChunkQuiet(FCO); IsAdded = false; } if (_VBO != null) { VBO tV = _VBO; lock (OwningRegion.TheClient.vbos) { if (tV.generated && OwningRegion.TheClient.vbos.Count < 120) { OwningRegion.TheClient.vbos.Push(tV); } else { tV.Destroy(); } } _VBO = null; } DestroyPlants(); }
/// <summary> /// Sync only. /// </summary> public void Destroy(bool excess = true) { if (excess && PosMultiplier >= 5) { OwningRegion.RecalculateSLOD(WorldPosition); } if (FCO != null && IsAdded) { OwningRegion.RemoveChunkQuiet(FCO); IsAdded = false; } if (Render_VoxelBuffer != null) { for (int i = 0; i < Render_VoxelBuffer.Length; i++) { if (Render_VoxelBuffer[i] > 0) { GL.DeleteBuffer(Render_VoxelBuffer[i]); } } } DestroyVBO(_VBOSolid); DestroyVBO(_VBOTransp); _VBOSolid = null; _VBOTransp = null; DestroyPlants(); }
/// <summary> /// Sync only. /// </summary> public void Destroy() { if (PosMultiplier >= 5) { OwningRegion.RecalculatSLOD(WorldPosition); } if (FCO != null && IsAdded) { OwningRegion.RemoveChunkQuiet(FCO); IsAdded = false; } DestroyVBO(_VBOSolid); DestroyVBO(_VBOTransp); _VBOSolid = null; _VBOTransp = null; DestroyPlants(); }