/** * Save and serialize a chunk. **/ public static void SerializeChunk(Chunk chunk) { ChunkSerialized save = new ChunkSerialized(chunk); if (save.empty) { return; } string saveFile = FileManager.SaveLocation(chunk.world.worldName); saveFile += FileName(chunk.pos); IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(saveFile, FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, save); stream.Close(); }
/** * Unserialize and load a chunk. **/ public static bool DeserializeChunk(Chunk chunk) { string saveFile = FileManager.SaveLocation(chunk.world.worldName); saveFile += FileName(chunk.pos); if (!File.Exists(saveFile)) { return(false); } IFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(saveFile, FileMode.Open); ChunkSerialized save = (ChunkSerialized)formatter.Deserialize(stream); chunk.blocks = save.blocks; chunk.meta = save.meta; stream.Close(); return(true); }