public WaterChunksMerger(string fileFilter, int fileX = -1, int fileZ = -1) { _fileLog = fileFilter + "[" + fileX + "," + fileZ + "]"; _waterReader = new VFDataReader(VFVoxelTerrain.MapDataPath_Zip + "/water", OnChunkDataLoad, false); _terraReader = new VFDataReader(VFVoxelTerrain.MapDataPath_Zip + "/map", OnChunkDataLoad, false); River2Voxel.ReadRiverChunksList(ref _riverChunkFileList, fileFilter, fileX, fileZ); _chunkPosList = _riverChunkFileList.Keys.Cast <IntVector4>().ToList(); }
byte[] MergeWaterData(IntVector4 chunkPos, byte[] baseChunkData) { List <string> files = _riverChunkFileList[chunkPos]; int n = files.Count; if (n > 0) { byte[] chunkData = baseChunkData; for (int i = 0; i < n; i++) { chunkData = VFDataReader.MergeChunkData(chunkData, File.ReadAllBytes(files[i]), chunkPos.w); } if (chunkPos.w == 0) // || chunkData.Length > VFVoxel.c_VTSize){ //let waterchunk_lod(not full/empty) do minus { VFVoxelChunkData tChunk = _terraReader.ReadChunkImm(chunkPos); chunkData = VFDataReader.MinusChunkData(chunkData, tChunk.DataVT, 0); } return(chunkData); } return(baseChunkData); }
public River2Voxel() { terraReader = new VFDataReader(VFVoxelTerrain.MapDataPath_Zip + "/map", OnChunkDataLoad); waterReader = new VFDataReader(VFVoxelTerrain.MapDataPath_Zip + "/water", OnChunkDataLoad); }