Example #1
0
        public override void DrawGUI(bool inEditor)
        {
            switch (windowStat)
            {
            case WindowStat.OPENING:
                windowProgr += Time.deltaTime;
                if (windowProgr >= 1)
                {
                    windowProgr = 1;
                    windowStat  = WindowStat.NORMAL;
                }
                break;

            case WindowStat.CLOSING:
                windowProgr -= Time.deltaTime;
                if (windowProgr <= 0)
                {
                    windowProgr = 0;
                    windowStat  = WindowStat.HIDDEN;
                }
                break;
            }

            GUI.depth = -100;
            GUI.SetNextControlName("MechJebOpen");
            GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(new Vector3(0, 0, -90)), Vector3.one);
            if (!hideButton && GUI.RepeatButton(new Rect(windowVPos, Screen.width - 25 - (200 * windowProgr), 100, 25), (windowStat == WindowStat.HIDDEN) ? "/\\ MechJeb /\\" : "\\/ MechJeb \\/"))
            {
                if (Event.current.button == 0)
                {
                    ShowHideWindow();
                }
                else if (!movingButton && Event.current.button == 1)
                {
                    movingButton = true;
                }
            }
            GUI.matrix = Matrix4x4.identity;

            GUI.depth = -99;

            if (windowStat != WindowStat.HIDDEN)
            {
                Rect pos = new Rect(Screen.width - windowProgr * 200, Mathf.Clamp(-100 - windowVPos, 0, Screen.height - windowPos.height), windowPos.width, windowPos.height);
                windowPos = GUILayout.Window(GetType().FullName.GetHashCode(), pos, WindowGUI, "MechJeb " + core.version, GUILayout.Width(200), GUILayout.Height(20));
            }
            else
            {
                windowPos = new Rect(Screen.width, Screen.height, 0, 0); // make it small so the mouse can't hoover it
            }

            GUI.depth = -98;

            if (firstDraw)
            {
                GUI.FocusControl("MechJebOpen");
                firstDraw = false;
            }
        }
Example #2
0
 public void ShowHideWindow()
 {
     if (windowStat == WindowStat.HIDDEN)
     {
         windowStat  = WindowStat.OPENING;
         windowProgr = 0;
         firstDraw   = true;
     }
     else if (windowStat == WindowStat.NORMAL)
     {
         windowStat  = WindowStat.CLOSING;
         windowProgr = 1;
     }
 }
        public override void DrawGUI(bool inEditor)
        {
            switch (windowStat)
            {
            case WindowStat.OPENING:
                windowProgr += Time.deltaTime;
                if (windowProgr >= 1)
                {
                    windowProgr = 1;
                    windowStat  = WindowStat.NORMAL;
                }
                break;

            case WindowStat.CLOSING:
                windowProgr -= Time.deltaTime;
                if (windowProgr <= 0)
                {
                    windowProgr = 0;
                    windowStat  = WindowStat.HIDDEN;
                }
                break;
            }

            GUI.depth = -100;
            GUI.SetNextControlName("MechJebOpen");
            Matrix4x4 previousGuiMatrix = GUI.matrix;

            if (windowSide == WindowSide.RIGHT || windowSide == WindowSide.LEFT)
            {
                GUI.matrix = GUI.matrix * Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(new Vector3(0, 0, -90)), Vector3.one);
            }

            if (!HideMenuButton && GUI.RepeatButton(buttonPos, (windowStat == WindowStat.HIDDEN) ^ (windowSide == WindowSide.TOP || windowSide == WindowSide.LEFT) ? "▲ MechJeb ▲" : "▼ MechJeb ▼"))
            {
                if (Event.current.button == 0)
                {
                    ShowHideWindow();
                }
                else if (!movingButton && Event.current.button == 1)
                {
                    movingButton = true;
                }
            }
            GUI.matrix = previousGuiMatrix;

            GUI.depth = -99;

            if (windowStat != WindowStat.HIDDEN)
            {
                windowPos = GUILayout.Window(GetType().FullName.GetHashCode(), displayedPos, WindowGUI, "MechJeb " + core.version, GUILayout.Width(colWidth), GUILayout.Height(20));
            }
            else
            {
                windowPos = new Rect(GuiUtils.scaledScreenWidth, GuiUtils.scaledScreenHeight, 0, 0); // make it small so the mouse can't hoover it
            }

            GUI.depth = -98;

            if (firstDraw)
            {
                GUI.FocusControl("MechJebOpen");
                firstDraw = false;
            }
        }
Example #4
0
        public override void DrawGUI(bool inEditor)
        {
            switch (windowStat)
            {
            case WindowStat.OPENING:
                windowProgr += Time.deltaTime;
                if (windowProgr >= 1)
                {
                    windowProgr = 1;
                    windowStat  = WindowStat.NORMAL;
                }
                break;

            case WindowStat.CLOSING:
                windowProgr -= Time.deltaTime;
                if (windowProgr <= 0)
                {
                    windowProgr = 0;
                    windowStat  = WindowStat.HIDDEN;
                }
                break;
            }

            GUI.depth = -100;
            GUI.SetNextControlName("MechJebOpen");
            GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(new Vector3(0, 0, -90)), Vector3.one);
            if (GUI.Button(new Rect((-Screen.height / 4 - 50), Screen.width - 25 - (200 * windowProgr), 100, 25), (windowStat == WindowStat.HIDDEN) ? "/\\ MechJeb /\\" : "\\/ MechJeb \\/"))
            {
                if (windowStat == WindowStat.HIDDEN)
                {
                    windowStat  = WindowStat.OPENING;
                    windowProgr = 0;
                    firstDraw   = true;
                }
                else if (windowStat == WindowStat.NORMAL)
                {
                    windowStat  = WindowStat.CLOSING;
                    windowProgr = 1;
                }
            }
            GUI.matrix = Matrix4x4.identity;

            GUI.depth = -99;

            if (windowStat != WindowStat.HIDDEN)
            {
                windowVector.x = Screen.width - windowProgr * 200;
                windowVector.y = Screen.height / 4 - windowPos.height / 2;
                if (windowVector.y < 75)
                {
                    windowVector.y = 75;
                }
                windowPos = GUILayout.Window(GetType().FullName.GetHashCode(), windowPos, WindowGUI, "MechJeb " + core.version, GUILayout.Width(200), GUILayout.Height(20));
            }
            else
            {
                windowVector.x = Screen.width + 100;
                windowVector.y = Screen.height + 100;
            }

            GUI.depth = -98;

            if (firstDraw)
            {
                GUI.FocusControl("MechJebOpen");
                firstDraw = false;
            }
        }
Example #5
0
        public void loadSettings()
        {
            if (settings == null)
            {
                settings = new SettingsManager(KSPUtil.ApplicationRootPath + "MuMech/MechJeb.cfg");
            }

            foreach (ComputerModule module in modules)
            {
                module.onLoadGlobalSettings(settings);
            }
            main_windowStat = (WindowStat)settings["main_windowStat"].value_integer;
            main_windowProgr = (float)settings["main_windowProgr"].value_decimal;
            settingsChanged = false;
            settingsLoaded = true;
        }
Example #6
0
        private void drawGUI()
        {
            if ((part.State != PartStates.DEAD) && (part.vessel == FlightGlobals.ActiveVessel) && (allJebs[part.vessel].controller == this) && !gamePaused)
            {
                GUI.skin = HighLogic.Skin;

                switch (main_windowStat)
                {
                    case WindowStat.OPENING:
                        main_windowProgr += Time.fixedDeltaTime;
                        if (main_windowProgr >= 1)
                        {
                            main_windowProgr = 1;
                            main_windowStat = WindowStat.NORMAL;
                        }
                        break;
                    case WindowStat.CLOSING:
                        main_windowProgr -= Time.fixedDeltaTime;
                        if (main_windowProgr <= 0)
                        {
                            main_windowProgr = 0;
                            main_windowStat = WindowStat.HIDDEN;
                        }
                        break;
                }

                GUI.depth = -100;
                GUI.SetNextControlName("MechJebOpen");
                GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(new Vector3(0, 0, -90)), Vector3.one);
                if (GUI.Button(new Rect((-Screen.height - 100) / 2, Screen.width - 25 - (200 * main_windowProgr), 100, 25), (main_windowStat == WindowStat.HIDDEN) ? "/\\ MechJeb /\\" : "\\/ MechJeb \\/"))
                {
                    if (main_windowStat == WindowStat.HIDDEN)
                    {
                        main_windowStat = WindowStat.OPENING;
                        main_windowProgr = 0;
                        firstDraw = true;
                    }
                    else if (main_windowStat == WindowStat.NORMAL)
                    {
                        main_windowStat = WindowStat.CLOSING;
                        main_windowProgr = 1;
                    }
                }
                GUI.matrix = Matrix4x4.identity;

                GUI.depth = -99;

                if (main_windowStat != WindowStat.HIDDEN)
                {
                    GUILayout.Window(windowIDbase, new Rect(Screen.width - main_windowProgr * 200, (Screen.height - 200) / 2, 200, 200), main_WindowGUI, "MechJeb", GUILayout.Width(200), GUILayout.Height(200));
                }

                GUI.depth = -98;

                int wid = 1;
                foreach (ComputerModule module in modules)
                {
                    if (module.enabled)
                    {
                        module.drawGUI(windowIDbase + wid);
                    }
                    wid += 7;
                }

                if (firstDraw)
                {
                    GUI.FocusControl("MechJebOpen");
                    firstDraw = false;
                }
            }
        }
Example #7
0
        public void loadSettings()
        {
            if (settings == null)
            {
                settings = new SettingsManager("MechJeb.cfg");
            }

            foreach (ComputerModule module in modules)
            {
                module.onLoadGlobalSettings(settings);
            }
            main_windowStat = (WindowStat)settings["main_windowStat"].value_integer;
            main_windowProgr = (float)settings["main_windowProgr"].value_decimal;
            settingsChanged = false;
            settingsLoaded = true;
            settingsVersion = settings.version;
        }