AGS.Types.Script.SaveToDisk C# (CSharp) Method

SaveToDisk() public method

public SaveToDisk ( ) : void
return void
        public void SaveToDisk()
        {
            if (_modified)
            {
                _isBeingSaved = true;
                try
                {
                    // Ensure that the file gets written in 8-bit ANSI
                    byte[] bytes = Encoding.Default.GetBytes(_text);
                    using (BinaryWriter binWriter = new BinaryWriter(File.Open(_fileName, FileMode.Create)))
                    {
                        binWriter.Write(bytes);
                        _lastSavedAt = DateTime.Now;
                    }
                }
                finally
                {
                    _isBeingSaved = false;
                }
                _modified = false;
            }
        }

Usage Example

Beispiel #1
0
        public override void CommandClick(string controlID)
        {
            if (controlID == MENU_COMMAND_RENAME)
            {
                _guiController.ProjectTree.BeginLabelEdit(this, "Scr" + _rightClickedScript);
            }
            else if (controlID == MENU_COMMAND_DELETE)
            {
                if (_guiController.ShowQuestion("Are you sure you want to delete this script and its header?") == DialogResult.Yes)
                {
                    Script chosenItem = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript);
                    Script header = GetAssociatedScriptOrHeader(chosenItem, _rightClickedScript);

                    if (_editors.ContainsKey(chosenItem))
                    {
                        _guiController.RemovePaneIfExists(_editors[chosenItem]);
                    }
                    if (_editors.ContainsKey(header))
                    {
                        _guiController.RemovePaneIfExists(_editors[header]);
                    }

                    _agsEditor.CurrentGame.Scripts.Remove(chosenItem);
                    _agsEditor.CurrentGame.Scripts.Remove(header);
                    _agsEditor.DeleteFileOnDiskAndSourceControl(new string[] { chosenItem.FileName, header.FileName });
                    _agsEditor.CurrentGame.FilesAddedOrRemoved = true;
                    RePopulateTreeView(null);
                }
            }
            else if (controlID == MENU_COMMAND_MOVE_UP)
            {
                Script chosenItem = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript);
                _agsEditor.CurrentGame.Scripts.MoveScriptAndHeaderUp(chosenItem);
                RePopulateTreeView(chosenItem);
            }
            else if (controlID == MENU_COMMAND_MOVE_DOWN)
            {
                Script chosenItem = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript);
                _agsEditor.CurrentGame.Scripts.MoveScriptAndHeaderDown(chosenItem);
                RePopulateTreeView(chosenItem);
            }
            else if (controlID == MENU_COMMAND_IMPORT)
            {
                string fileName = _guiController.ShowOpenFileDialog("Select script to import...", SCRIPT_MODULE_FILE_FILTER);
                if (fileName != null)
                {
                    ImportScriptModule(fileName);
                }
            }
            else if (controlID == MENU_COMMAND_EXPORT)
            {
                string fileName = _guiController.ShowSaveFileDialog("Export script as...", SCRIPT_MODULE_FILE_FILTER);
                if (fileName != null)
                {
                    Script script = _agsEditor.CurrentGame.Scripts.GetScriptByFilename(_rightClickedScript);
                    Script header = GetAssociatedScriptOrHeader(script, _rightClickedScript);
                    if (script.IsHeader)
                    {
                        // they selected the header to export
                        Script temp = script;
                        script = header;
                        header = temp;
                    }
                    ExportScriptModule(header, script, fileName);
                }
            }
            else if (controlID == MENU_COMMAND_NEW)
            {
                string newFileName = FindFirstAvailableFileName("NewScript");
                Script newScript = new Script(newFileName + ".asc", "// new module script\r\n", false);
                Script newHeader = new Script(newFileName + ".ash", "// new module header\r\n", true);
                newScript.Modified = true;
                newScript.SaveToDisk();
                newHeader.Modified = true;
                newHeader.SaveToDisk();
                _agsEditor.CurrentGame.Scripts.AddAtTop(newScript);
                _agsEditor.CurrentGame.Scripts.AddAtTop(newHeader);
                _agsEditor.CurrentGame.FilesAddedOrRemoved = true;
                RePopulateTreeView(newScript);
                _guiController.ProjectTree.BeginLabelEdit(this, "Scr" + newScript.FileName);
            }
            else if (controlID == COMMAND_OPEN_GLOBAL_HEADER)
            {
                CreateOrShowEditorForScript(Script.GLOBAL_HEADER_FILE_NAME);
            }
            else if (controlID == COMMAND_OPEN_GLOBAL_SCRIPT)
            {
                CreateOrShowEditorForScript(Script.GLOBAL_SCRIPT_FILE_NAME);
            }
            else if (controlID != ROOT_COMMAND)
            {
                string scriptName = controlID.Substring(3);
                CreateOrShowEditorForScript(scriptName);
            }
        }