예제 #1
0
        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();
        }