/// <summary> /// The load level. /// </summary> /// <param name="filename"> /// The file name. /// </param> public void LoadFile(string filename) { using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read)) { var levelSerializer = new LevelSerializer(); this.CurrentLevel = levelSerializer.Deserialize(fileStream, this); } }
/// <summary> /// ICloneable.Clone() implementation. /// </summary> /// <returns> /// Returns a deep-clone. /// </returns> public object Clone() { using (var memoryStream = new MemoryStream()) { var levelSerializer = new LevelSerializer(); levelSerializer.Serialize(memoryStream, this); memoryStream.Seek(0, SeekOrigin.Begin); return(levelSerializer.Deserialize(memoryStream, null)); } }
/// <summary> /// Reads an object from the current stream. /// </summary> /// <param name="input"> /// The ContentReader used to read the object. /// </param> /// <param name="existingInstance"> /// An existing object to read into. /// </param> /// <returns> /// Level instance. /// </returns> protected override SerializableLevel Read(ContentReader input, SerializableLevel existingInstance) { var levelSerializer = new LevelSerializer(); return(levelSerializer.Deserialize(input.BaseStream)); }