public static Graph OpenGraph(string name) { if (!initialised) { VSLogger.LogError("VScriptEngine not initialised"); return(null); } if (loaded_graphs.ContainsKey(name)) { return(loaded_graphs[name]); } Graph graph = new Graph(name); if (graph.Import(engine_directory + project_directory + "/")) { VSLogger.Log("Loaded graph '" + name + "'"); loaded_graphs[name] = graph; return(graph); } else { VSLogger.LogError("Failed to open graph '" + name + "'"); return(null); } }
public static void SaveOpenGraphs() { if (!initialised) { VSLogger.LogError("VScriptEngine not initialised"); return; } foreach (KeyValuePair <string, Graph> g in loaded_graphs) { g.Value.Export(engine_directory + project_directory + "/"); VSLogger.Log("Saved graph '" + g.Key + "'"); } }
public static Graph NewGraph(string name) { if (!initialised) { VSLogger.LogError("VScriptEngine not initialised"); return(null); } Graph graph = new Graph(name); VSLogger.Log("New graph '" + name + "'"); loaded_graphs[name] = graph; return(graph); }
public static void SaveSettings() { if (!initialised) { VSLogger.LogError("VScriptEngine not initialised"); return; } JsonObject json = new JsonObject(); json.Put("python_exe_directory", python_exe_directory); json.Put("core_modules_directory", core_modules_directory); json.Put("project_directory", project_directory); json.Put("executable_directory", executable_directory); File.WriteAllText(engine_directory + engine_settings_path, json.ToString()); VSLogger.Log("Saved '" + engine_settings_path + "'"); }
public static void LoadSettings() { if (!initialised) { VSLogger.LogError("VScriptEngine not initialised"); return; } try { string raw_json = File.ReadAllText(engine_directory + engine_settings_path); JsonObject json = new JsonObject(raw_json); python_exe_directory = json.Get("python_exe_directory", python_exe_directory); core_modules_directory = json.Get("core_modules_directory", core_modules_directory); project_directory = json.Get("project_directory", project_directory); executable_directory = json.Get("executable_directory", executable_directory); VSLogger.Log("Loaded '" + engine_settings_path + "'"); } catch (FileNotFoundException) { } catch (DirectoryNotFoundException) { } }
public static bool CompileAndRun(Graph graph) { if (!initialised) { VSLogger.LogError("VScriptEngine not initialised"); return(false); } try { string graph_path = Compiler.main.Compile(graph); VSLogger.Log("===Executing '" + graph.display_name + "'==="); PythonConsole.RunGraph(graph_path, input_function); VSLogger.Log("===Finished execution==="); return(true); } catch (Exception e) { VSLogger.LogError(e.Message + "\n" + e.StackTrace); VSLogger.Log("===Aborting execution==="); return(false); } }
public static void Init() { initialised = true; VSLogger.Log("Initialising VScriptEngine"); if (engine_directory == "") { VSLogger.LogError("VScriptEngine 'engine_directory' not set"); initialised = false; return; } LoadSettings(); Directory.CreateDirectory(engine_directory + core_modules_directory); Library.main.LoadModules(engine_directory + core_modules_directory); PythonConsole.exe_path = python_exe_directory; Directory.CreateDirectory(engine_directory + project_directory); loaded_graphs = new Dictionary <string, Graph>(); VSLogger.Log("VScriptEngine initialised"); }
public static void CloseGraph(string name, bool save = true) { if (!initialised) { VSLogger.LogError("VScriptEngine not initialised"); return; } if (loaded_graphs.ContainsKey(name)) { if (save) { loaded_graphs[name].Export(engine_directory + project_directory + "/"); VSLogger.Log("Saved graph '" + name + "'"); } loaded_graphs.Remove(name); VSLogger.Log("Closed graph '" + name + "'"); } else { VSLogger.LogError("Cannot close graph '" + name + "' as it is not open"); } }