public void SaveDataToFileCaches(int bitMask, VFTile tile, double[][] nData, float[][] hData, float[][] gData, RandomMapType[][] tData) { if (_voxelTileCachesFS == null) { return; } IntVector4 xzlh = new IntVector4(tile.tileX, tile.tileZ, tile.tileL, tile.tileH); if (_voxelTileCacheDescsList.ContainsKey(xzlh)) { Debug.LogWarning("[VFDataRTGen]:Try to append a existing voxel tile to cache file." + xzlh); return; } try { _voxelTileCachesFS.Seek(0, SeekOrigin.End); //Append VFTerTileCacheDesc desc = VFTerTileCacheDesc.WriteDataToCache(_bw, bitMask, tile, nData, hData, gData, tData); _voxelTileCacheDescsList.Add(xzlh, desc); } catch (Exception e) { string strE = e.ToString(); Debug.LogWarning("[VFDataRTGen]:Failed to append voxel tile to cache file" + xzlh + e); if (strE.Contains("IOException: Win32 IO returned 112.")) { GameLog.HandleExceptionInThread(e); } } }