public void OnSettingsUI(UIHelperBase helper) { try { UIHelper group = helper.AddGroup(Name) as UIHelper; UIPanel panel = group.self as UIPanel; panel.gameObject.AddComponent <OptionsKeymapping>(); group.AddSpace(10); F5toExec.Draw(group); SyncExecution.Draw(group, (b) => { PythonConsole.CreateInstance(); }); ShowRemoteConsole.Draw(group); DoNotLaunchRemoteConsole.Draw(group); group.AddSpace(10); group.AddButton("Kill python engine", () => { PythonConsole.KillInstance(); }); } catch (Exception e) { Debug.Log("OnSettingsUI failed"); Debug.LogException(e); } }
public void OnLevelUnloading() { try { UnityPythonObject.Instance.scriptEditor.Visible = false; } catch { } /*var go = UnityEngine.Object.FindObjectOfType<SelectionToolControl>(); * if (go != null) { * UnityEngine.Object.Destroy(go); * }*/ PythonConsole.KillInstance(); }
public void Update() { scriptEditor.OnUpdate(); if (ModInfo.ScriptEditorShortcut.IsPressed()) { if (!_keyPressProcessed) { _keyPressProcessed = true; if (PythonConsole.Instance == null) { PythonConsole.CreateInstance(); } scriptEditor.Visible = !scriptEditor.Visible; } } else { _keyPressProcessed = false; } }
private void DrawButtonArea() { buttonsArea.Begin(); GUILayout.BeginHorizontal(); ConsoleState state = PythonConsole.Instance?.State ?? ConsoleState.Initializing; if (state != ConsoleState.Dead) { GUI.enabled = state == ConsoleState.Ready; if (GUILayout.Button("Execute (F5)")) { Execute(); } GUI.enabled = state == ConsoleState.ScriptRunning; if (GUILayout.Button("Abort")) { AbortFileActions(); PythonConsole.Instance.AbortScript(); } } else { if (GUILayout.Button("Restart engine")) { PythonConsole.CreateInstance(); } } GUI.enabled = true; GUILayout.Label(state == ConsoleState.ScriptRunning ? "Executing..." : (state == ConsoleState.ScriptAborting ? "Aborting..." : (contextMsg != "" ? "Last error: " + contextMsg : ""))); GUILayout.FlexibleSpace(); if (renamingFile) { try { GUILayout.Label("New name:", GUILayout.ExpandWidth(false)); newFileName = GUILayout.TextField(newFileName, GUILayout.Width(150)); if (GUILayout.Button("OK")) { string newPath = Path.Combine(Path.GetDirectoryName(currentFile.Path), newFileName + ".py"); File.Move(currentFile.Path, newPath); currentFile.Rename(newPath); AbortFileActions(); } if (GUILayout.Button("Cancel")) { AbortFileActions(); } } catch (Exception ex) { contextMsg = ex.Message; return; } } else if (deletingFile) { GUILayout.Label("Delete?", GUILayout.ExpandWidth(false)); if (GUILayout.Button("Yes")) { try { File.Delete(currentFile.Path); } catch (Exception ex) { contextMsg = ex.Message; return; } ReloadProjectWorkspace(); } if (GUILayout.Button("No")) { AbortFileActions(); } } else { if (GUILayout.Button("Rename")) { renamingFile = true; newFileName = Path.GetFileNameWithoutExtension(currentFile.Path); } if (GUILayout.Button("Delete")) { deletingFile = true; } if (currentFile == null) { GUI.enabled = false; } if (GUILayout.Button("Save")) { try { AbortFileActions(); SaveProjectFile(currentFile); contextMsg = "File saved"; } catch (Exception ex) { contextMsg = ex.Message; return; } contextMsg = string.Empty; } GUI.enabled = true; if (GUILayout.Button("Save all")) { AbortFileActions(); SaveAllProjectFiles(); } } GUILayout.EndHorizontal(); buttonsArea.End(); }