public void OnFileSave() { Map map = GameManager.Instance.Map; if (!map) { return; } StringBuilder build = new StringBuilder(); XmlWriterSettings settings = new XmlWriterSettings(); settings.OmitXmlDeclaration = true; settings.Indent = true; using (XmlWriter xmlWriter = XmlWriter.Create(build, settings)) { XmlDocument document = new XmlDocument(); map.Serialize(document, null); document.Save(xmlWriter); } string mapString = build.ToString(); if (Properties.Web) { JavaScriptUtils.DownloadNative("Deed plan.MAP", mapString); } else { ExtensionFilter[] extensionArray = { new ExtensionFilter("DeedPlanner 3 save", "MAP") }; string path = StandaloneFileBrowser.SaveFilePanel("Save Map", "", "Deed plan", extensionArray); if (string.IsNullOrEmpty(path)) { return; } if (!path.EndsWith(".MAP")) { path += ".MAP"; } byte[] bytes = Encoding.Default.GetBytes(build.ToString()); File.WriteAllBytes(path, bytes); } window.HideWindow(); }