public void Import(Pathea.PeRecordReader r) { if (Pathea.PeGameMgr.IsMulti) { return; } SaveLoad = new VFVoxelSave(ArchiveKey); SaveLoad.Import(r); InitSkEntity(); }
public byte[] GetData(string key) { PeRecordReader r = GetReader(key); if (null == r) { return(null); } return(r.ReadBytesDirect()); }
public void Restore() { PeRecordReader r = ArchiveMgr.Instance.GetReader(VFVoxelTerrain.ArchiveKey); VFVoxelTerrain.self.Import(r); r = ArchiveMgr.Instance.GetReader(VFVoxelWater.ArchiveKey); VFVoxelWater.self.Import(r); r = ArchiveMgr.Instance.GetReader(Bloc45kArchiveKey); Block45Man.self.Import(r); }
public void Import(Pathea.PeRecordReader r) { ApplyQuality(SystemSettingData.Instance.WaterRefraction, SystemSettingData.Instance.WaterDepth); SaveLoad = new VFVoxelSave(ArchiveKey, AddtionalReader, AddtionalWriter); SaveLoad.Import(r); if (s_surfaceChunkData == null) { InitSufaceChunkData(); } #if RIVER_DATA_FILE_TST // Load river chunk pos River2Voxel.ReadRiverChunksList(ref _riverChunkFileList); #endif }
void DelayedLoad() { if (null == _record) { return; } if (!_record.Open()) { return; } BinaryReader br = _record.binaryReader; _dataSource.Import(br); _record.Close(); _record = null; }
public void Import(Pathea.PeRecordReader r) { if (null == r) { return; } if (_tmpVoxelFileStream == null) { return; } if (!r.Open()) { return; } BinaryReader br = r.binaryReader; // Version check int ver = br.ReadInt32(); if (ver != s_ver) { Debug.LogError("[VoxelSave]:Error version:" + ver + "|" + s_ver); r.Close(); return; } int cnt = br.ReadInt32(); byte[] buff = VFVoxelChunkData.s_ChunkDataPool.Get(); BinaryWriter tmpbw = new BinaryWriter(_tmpVoxelFileStream); _tmpVoxelFileStream.Seek(0, SeekOrigin.Begin); tmpbw.Write(ver); tmpbw.Write(cnt); for (int i = 0; i < cnt; i++) { br.Read(buff, 0, VoxelTerrainConstants.VOXEL_ARRAY_LENGTH_VT); _tmpVoxelFileStream.Write(buff, 0, VoxelTerrainConstants.VOXEL_ARRAY_LENGTH_VT); } VFVoxelChunkData.s_ChunkDataPool.Free(buff); _modifiedChunksInfo.Clear(); //long chnkDataPos = br.BaseStream.Position; //long infoDataPos = chnkDataPos + cnt*VoxelTerrainConstants.VOXEL_ARRAY_LENGTH_VT; //br.BaseStream.Seek(infoDataPos); for (int i = 0; i < cnt; i++) { int x = br.ReadInt32(); int y = br.ReadInt32(); int z = br.ReadInt32(); int w = br.ReadInt32(); long pos = br.ReadInt64(); _modifiedChunksInfo.Add(new IntVector4(x, y, z, w), pos); } if (_addtionalReader != null) { _addtionalReader(br); } r.Close(); }
public void Import(Pathea.PeRecordReader r) { _record = r; }