/// <summary> /// Serialize a chunk. /// </summary> /// <param name="chunk">The chunk to serialize.</param> /// <param name="chunkIndex">The chunk index.</param> public void SerialiseChunk(Chunk chunk, Position chunkIndex) { // NOTE: This should occur in a seperate thread, since terrain serialization isn't high priority. // However, care should be taken to consider the situation when a terrain is being serialized in another thread // and then a new deserialization request comes in for that chunk. In this case the deserialization thread // should block }
/// <summary> /// Attempt to deserialise a chunk. /// </summary> /// <param name="chunkIndex">The chunk index.</param> /// <param name="chunk">The deserialised chunk.</param> /// <returns>True if chunk was deserialised; False if a serialization file does not exist for chunk.</returns> public bool TryDeserialiseChunk(Position chunkIndex, out Chunk chunk) { string chunkFile; if (!this.chunkFiles.TryGetValue(chunkIndex, out chunkFile)) { // A chunk file doesn't exist for the given chunk chunk = null; return false; } // TODO: Deserialize the file throw new NotImplementedException("Chunk deserialization is not yet implemented."); }