public static void WriteTitleLine() { GSConsole.WriteLine("---------------------------"); GSConsole.WriteLine(GSDesc); GSConsole.WriteLine(ConsoleDesc); GSConsole.WriteLine("---------------------------"); }
public static void ExecuteLine(string src) { var result = _GetCurExecuter().ExecuteLineOrSaveLine(src); if (!string.IsNullOrEmpty(result)) { GSConsole.WriteLine(result.ToString()); } }
public static void ExecuteNewProject(params string[] args) { string path = ""; if (args.Length > 0) { path = args[0].Trim(); } if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } else { GSConsole.WriteLine("[NO] Project: " + path + " is exists!"); return; } string name = path; var chPos = path.LastIndexOfAny(new char[] { '/', '\\' }); if (chPos != -1) { name = path.Substring(chPos + 1).Trim(); } string[] copyFiles = new string[] { "sources.conf", "GameScript.dll", "UsingStandard.dll", }; File.Copy("GameScriptApplication.exe", path + "/" + name + ".exe"); foreach (var item in copyFiles) { File.Copy(item, path + "/" + item); } string templateSrc = "main() {\n\tWelcome() {\n\t\tprint(\"Welcome to GameScript!\");\n\t}\n\tWelcome();\n}\nmain();"; File.WriteAllText(path + "/main.gs", templateSrc); GSConsole.WriteLine("[YES] Project: " + path + " is created!"); }
public string Execute(string path) { if (!File.Exists(path)) { GSConsole.WriteLine("\"" + path + "\"" + "is not a \"GameScript\" file!"); return(""); } var src = File.ReadAllText(path); if (string.IsNullOrEmpty(src)) { return(""); } var vmFun = VM.Load(src); var result = vmFun.Execute(); if (result != null) { return(result.ToString()); } return(""); }
public static bool ExecuteCommand(Command command, params string[] args) { switch (command) { case Command.Clear: GSConsole.Clear(); _GetCurExecuter().Clear(); WriteTitleLine(); break; case Command.Quit: _bStop = true; break; case Command.ShowSrc: var src = _GetCurExecuter().GetSrc(); if (!string.IsNullOrEmpty(src)) { GSConsole.Write(src); if (src[src.Length - 1] != '\n') { GSConsole.WriteLine(); } } break; case Command.Space: foreach (var item in _lineExecuterDict) { bool bSelected = item.Key == _lineExecuterCurName; GSConsole.WriteLine(item.Key + (bSelected ? " (cur)" : "")); } break; case Command.Execute: ExecuteSrc(); break; case Command.Reset: GSConsole.Clear(); _RemoveAllExecuter(); WriteTitleLine(); break; case Command.OpenFile: if (args.Length == 0) { return(false); } ExecuteFile(args[0]); break; case Command.Change: if (args.Length == 0) { return(false); } ExecuteChange(args[0]); break; case Command.Remove: ExecuteRemoveSpace(args); break; case Command.New: ExecuteNewProject(args); break; default: return(false); } return(true); }