public XElement GetXElement() { var element = new XElement("Level", new XAttribute("ID", ID), new XAttribute("Size", Size)); element.SetAttributeValueWithDefault("Name", Name, string.Empty); element.SetAttributeValueWithDefault("TimeThresholds", FormattableString.Invariant($"{SPlusTime},{STime},{ATime},{BTime},{CTime}"), "1,2,3,4,5"); element.SetAttributeValue("SpawnPoint", SpawnPoint); element.SetAttributeValue("ExitPoint", ExitPoint); element.SetAttributeValueWithDefault("Theme", Theme); element.SetAttributeValueWithDefault("MusicJava", MusicJava); element.SetAttributeValueWithDefault("Music", Music, 6); if (Zoom < 0) { element.SetAttributeValueWithDefault(ValueIsAngle ? "Angle" : "FieldOfView", Value); } else { element.SetAttributeValueWithDefault("Zoom", Zoom, (short)-1); } foreach (var e in MovingPlatforms.GetXElements()) { element.Add(e); } foreach (var e in Bumpers.GetXElements()) { element.Add(e); } foreach (var e in FallingPlatforms.GetXElements()) { element.Add(e); } foreach (var e in Checkpoints.GetXElements()) { element.Add(e); } foreach (var e in CameraTriggers.GetXElements()) { element.Add(e); } foreach (var e in Prisms.GetXElements()) { element.Add(e); } foreach (var e in Fans.GetXElements()) { element.Add(e); } foreach (var e in Buttons.GetXElements()) { element.Add(e); } foreach (var e in OtherCubes.GetXElements()) { element.Add(e); } foreach (var e in Resizers.GetXElements()) { element.Add(e); } foreach (var e in MiniBlocks.GetXElements()) { element.Add(e); } return(element); }