Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 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;
     }
 }
Exemplo n.º 4
0
        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();
        }