コード例 #1
0
        private void drawPIDvalues(PIDList controllerid, string inputName, string inputUnits, double inputValue, int displayPrecision, string outputName, string outputUnits, bool invertOutput = false, bool showTarget = true, bool doublesided = true)
        {
            PID_Controller controller = Utils.GetAsst(controllerid);

            controller.bShow = GUILayout.Toggle(controller.bShow, string.Format("{0}: {1}{2}", inputName, inputValue.ToString("N" + displayPrecision.ToString()), inputUnits), GeneralUI.toggleButton, GUILayout.Width(window.width - 50));

            if (controller.bShow)
            {
                if (showTarget)
                {
                    GUILayout.Label(string.Format("Target: ", inputName) + controller.SetPoint.ToString("N" + displayPrecision.ToString()) + inputUnits);
                }

                GUILayout.BeginHorizontal();
                GUILayout.BeginVertical();

                controller.PGain  = GeneralUI.labPlusNumBox(string.Format("Kp:", inputName), controller.PGain.ToString("G3"), 45);
                controller.IGain  = GeneralUI.labPlusNumBox(string.Format("Ki:", inputName), controller.IGain.ToString("G3"), 45);
                controller.DGain  = GeneralUI.labPlusNumBox(string.Format("Kd:", inputName), controller.DGain.ToString("G3"), 45);
                controller.Scalar = GeneralUI.labPlusNumBox(string.Format("Scalar:", inputName), controller.Scalar.ToString("G3"), 45);

                if (showPIDLimits)
                {
                    GUILayout.EndVertical();
                    GUILayout.BeginVertical();

                    if (!invertOutput)
                    {
                        controller.OutMax = GeneralUI.labPlusNumBox(string.Format("Max {0}{1}:", outputName, outputUnits), controller.OutMax.ToString("G3"));
                        if (doublesided)
                        {
                            controller.OutMin = GeneralUI.labPlusNumBox(string.Format("Min {0}{1}:", outputName, outputUnits), controller.OutMin.ToString("G3"));
                        }
                        else
                        {
                            controller.OutMin = -controller.OutMax;
                        }
                        controller.ClampLower = GeneralUI.labPlusNumBox("I Clamp Lower:", controller.ClampLower.ToString("G3"));
                        controller.ClampUpper = GeneralUI.labPlusNumBox("I Clamp Upper:", controller.ClampUpper.ToString("G3"));
                    }
                    else
                    { // used when response * -1 is used to get the correct output
                        controller.OutMin = -1 * GeneralUI.labPlusNumBox(string.Format("Max {0}{1}:", outputName, outputUnits), (-controller.OutMin).ToString("G3"));
                        if (doublesided)
                        {
                            controller.OutMax = -1 * GeneralUI.labPlusNumBox(string.Format("Min {0}{1}:", outputName, outputUnits), (-controller.OutMax).ToString("G3"));
                        }
                        else
                        {
                            controller.OutMax = -controller.OutMin;
                        }

                        controller.ClampUpper = -1 * GeneralUI.labPlusNumBox("I Clamp Lower:", (-controller.ClampUpper).ToString("G3"));
                        controller.ClampLower = -1 * GeneralUI.labPlusNumBox("I Clamp Upper:", (-controller.ClampLower).ToString("G3"));
                    }
                }
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();
            }
        }
コード例 #2
0
        public static void loadAPPreset(APPreset p, George instance)
        {
            APController[] c = instance.controllers;
            for (int i = 0; i < c.Length && i < p.PIDGains.Count; i++)
            {
                c[i].PGain      = p.PIDGains[i][0];
                c[i].IGain      = p.PIDGains[i][1];
                c[i].DGain      = p.PIDGains[i][2];
                c[i].OutMin     = p.PIDGains[i][3];
                c[i].OutMax     = p.PIDGains[i][4];
                c[i].ClampLower = p.PIDGains[i][5];
                c[i].ClampUpper = p.PIDGains[i][6];
                c[i].Scalar     = p.PIDGains[i][7];
                c[i].Easing     = p.PIDGains[i][8];
            }

            Instance.activeAPPreset = p;
            GeneralUI.postMessage("Loaded preset " + p.name);

            if (Instance.activeAPPreset != Instance.craftPresetDict[craftDefaultName].apPreset)
            {
                updateCraftPreset(Instance.activeAPPreset, instance.vessel);
            }

            saveToFile();
        }
コード例 #3
0
        /// <summary>
        /// remove a preset from the stored list and remove any references to it on active vessels
        /// </summary>
        /// <param name="p"></param>
        public void DeleteAsstPreset(AsstPreset p)
        {
            GeneralUI.PostMessage("Deleted preset " + p.name);
            foreach (AsstVesselModule avm in PilotAssistantFlightCore.Instance.controlledVessels)
            {
                if (avm.vesselAsst.activePreset == p)
                {
                    avm.vesselAsst.activePreset = null;
                }
            }
            var toRemove = new List <string>();

            foreach (KeyValuePair <string, string> kvp in craftPresetDict)
            {
                if (kvp.Value == p.name)
                {
                    toRemove.Add(kvp.Key);
                }
            }
            foreach (string s in toRemove)
            {
                craftPresetDict.Remove(s);
            }

            AsstPresetList.Remove(p);

            p = null;

            SaveToFile();
        }
コード例 #4
0
        /// <summary>
        /// loads a preset into the controllers of a PA instance
        /// </summary>
        /// <param name="p">the preset to load</param>
        /// <param name="asstInstance">the PA instance to load to</param>
        public static void LoadAsstPreset(AsstPreset p, PilotAssistant asstInstance)
        {
            if (ReferenceEquals(p, null))
            {
                return;
            }

            Asst_PID_Controller[] c = asstInstance.controllers;
            for (int i = 0; i < 8; i++)
            {
                c[i].K_proportional     = p.PIDGains[i][0];
                c[i].K_integral         = p.PIDGains[i][1];
                c[i].K_derivative       = p.PIDGains[i][2];
                c[i].OutMin             = p.PIDGains[i][3];
                c[i].OutMax             = p.PIDGains[i][4];
                c[i].IntegralClampLower = p.PIDGains[i][5];
                c[i].IntegralClampUpper = p.PIDGains[i][6];
                c[i].Scalar             = p.PIDGains[i][7];
                c[i].Easing             = p.PIDGains[i][8];
            }

            asstInstance.activePreset = p;
            GeneralUI.PostMessage("Loaded preset " + p.name);

            if (asstInstance.activePreset.name != Instance.craftPresetDict[craftDefaultName])
            {
                Instance.UpdateCraftPreset(asstInstance.activePreset, asstInstance.vesModule.Vessel);
            }

            SaveToFile();
        }
コード例 #5
0
        public static void loadAsstPreset(AsstPreset p, PilotAssistant instance)
        {
            AsstController[] c = instance.controllers;
            for (int i = 0; i < 8; i++)
            {
                c[i].PGain      = p.PIDGains[i][0];
                c[i].IGain      = p.PIDGains[i][1];
                c[i].DGain      = p.PIDGains[i][2];
                c[i].OutMin     = p.PIDGains[i][3];
                c[i].OutMax     = p.PIDGains[i][4];
                c[i].ClampLower = p.PIDGains[i][5];
                c[i].ClampUpper = p.PIDGains[i][6];
                c[i].Scalar     = p.PIDGains[i][7];
                c[i].Easing     = p.PIDGains[i][8];
            }

            Instance.activeAsstPreset = p;
            GeneralUI.postMessage("Loaded preset " + p.name);

            if (Instance.activeAsstPreset != Instance.craftPresetDict[craftDefaultName].AsstPreset)
            {
                updateCraftPreset(Instance.activeAsstPreset, instance.vesModule.vesselRef);
            }
            saveToFile();
        }
コード例 #6
0
 // Use this for initialization
 void Start()
 {
     cloudsTransform      = GameObject.FindGameObjectWithTag("Earth Clouds");
     cloudRotationScript  = cloudsTransform.GetComponent <CloudRotation>();
     atmosphereInitScript = this.GetComponent <Init>();
     generalUIScript      = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <GeneralUI> ();
 }
コード例 #7
0
 public void OnGUI()
 {
     // create the GUISkin
     if (ReferenceEquals(GeneralUI.UISkin, null))
     {
         GeneralUI.customSkin();
     }
 }
コード例 #8
0
 public void OnGUI()
 {
     // create the GUISkin
     if (GeneralUI.UISkin == null)
     {
         GeneralUI.customSkin();
     }
 }
コード例 #9
0
        private void OnGUI()
        {
            GeneralUI.Styles();

            if (bDisplayOptions)
            {
                window = GUILayout.Window(0984653, window, optionsWindow, "", GUILayout.Width(0), GUILayout.Height(0));
            }
        }
コード例 #10
0
 private void Awake()
 {
     if (Instance)
     {
         Destroy(gameObject);
     }
     else
     {
         Instance = this;
     }
 }
コード例 #11
0
 void Start()
 {
     if ((GameManager == null) && (GameObject.Find("GameManager") != null))
     {
         GameManager = GameObject.Find("GameManager").GetComponent <GeneralUI> ();
     }
     else
     {
         Debug.LogWarning("There is no Game Manager in the scene!");
     }
 }
コード例 #12
0
ファイル: SurfSAS.cs プロジェクト: DeamonSix/Pilot-Assistant
        private void drawPIDValues(PIDclamp controller, string inputName, SASList controllerID)
        {
            stockPIDDisplay[(int)controllerID] = GUILayout.Toggle(stockPIDDisplay[(int)controllerID], inputName, GeneralUI.toggleButton);

            if (stockPIDDisplay[(int)controllerID])
            {
                controller.kp    = GeneralUI.labPlusNumBox("Kp:", controller.kp.ToString("G3"), 45);
                controller.ki    = GeneralUI.labPlusNumBox("Ki:", controller.ki.ToString("G3"), 45);
                controller.kd    = GeneralUI.labPlusNumBox("Kd:", controller.kd.ToString("G3"), 45);
                controller.clamp = Math.Max(GeneralUI.labPlusNumBox("Scalar:", controller.clamp.ToString("G3"), 45), 0.01);
            }
        }
コード例 #13
0
        private void drawPIDValues(PIDclamp controller, string inputName, SASList controllerID)
        {
            stockPIDDisplay[(int)controllerID] = GUILayout.Toggle(stockPIDDisplay[(int)controllerID], inputName, GeneralUI.UISkin.customStyles[(int)myStyles.btnToggle]);

            if (stockPIDDisplay[(int)controllerID])
            {
                controller.kp    = GeneralUI.labPlusNumBox(GeneralUI.KpLabel, controller.kp.ToString(), 45);
                controller.ki    = GeneralUI.labPlusNumBox(GeneralUI.KiLabel, controller.ki.ToString(), 45);
                controller.kd    = GeneralUI.labPlusNumBox(GeneralUI.KdLabel, controller.kd.ToString(), 45);
                controller.clamp = Math.Max(GeneralUI.labPlusNumBox(GeneralUI.ScalarLabel, controller.clamp.ToString(), 45), 0.01);
            }
        }
コード例 #14
0
        public static void deleteAPPreset(APPreset p)
        {
            GeneralUI.postMessage("Deleted preset " + p.name);
            if (Instance.activeAPPreset == p)
            {
                Instance.activeAPPreset = null;
            }
            Instance.APPresetList.Remove(p);

            p = null;

            saveToFile();
        }
コード例 #15
0
ファイル: GameManager.cs プロジェクト: Monjananja/ForNomad
    // Start is called before the first frame update
    private void Start()
    {
        cardsData      = this.gameObject.GetComponent <CardsData>();
        decks          = this.gameObject.GetComponent <DecksManager>();
        ui             = this.gameObject.GetComponent <GeneralUI>();
        player1        = GameObject.Find("Player1").GetComponent <PlayerManager>();
        player2        = GameObject.Find("Player2").GetComponent <PlayerManager>();
        player1UI      = GameObject.Find("Player1").GetComponent <PlayerUI>();
        player2UI      = GameObject.Find("Player2").GetComponent <PlayerUI>();
        player1Actions = GameObject.Find("Player1").GetComponent <PlayerActions>();
        player2Actions = GameObject.Find("Player2").GetComponent <PlayerActions>();

        InitializeGame();
    }
コード例 #16
0
ファイル: SurfSAS.cs プロジェクト: DeamonSix/Pilot-Assistant
        private void drawPIDValues(SASList controllerID, string inputName)
        {
            PID.PID_Controller controller = Utils.GetSAS(controllerID);
            controller.bShow = GUILayout.Toggle(controller.bShow, inputName, GeneralUI.toggleButton);

            if (controller.bShow)
            {
                controller.PGain             = GeneralUI.labPlusNumBox("Kp:", controller.PGain.ToString("G3"), 45);
                controller.IGain             = GeneralUI.labPlusNumBox("Ki:", controller.IGain.ToString("G3"), 45);
                controller.DGain             = GeneralUI.labPlusNumBox("Kd:", controller.DGain.ToString("G3"), 45);
                controller.Scalar            = GeneralUI.labPlusNumBox("Scalar:", controller.Scalar.ToString("G3"), 45);
                fadeReset[(int)controllerID] = Math.Max((float)GeneralUI.labPlusNumBox("Slide:", fadeReset[(int)controllerID].ToString("G3"), 45), 1);
            }
        }
コード例 #17
0
ファイル: SurfSAS.cs プロジェクト: lemon1324/Pilot-Assistant
        private void drawPIDValues(SASList controllerID, string inputName)
        {
            SASController controller = controllerID.GetSAS(this);

            controller.bShow = GUILayout.Toggle(controller.bShow, inputName, GeneralUI.UISkin.customStyles[(int)myStyles.btnToggle]);

            if (controller.bShow)
            {
                controller.PGain  = GeneralUI.labPlusNumBox(GeneralUI.KpLabel, controller.PGain.ToString("N3"), 45);
                controller.IGain  = GeneralUI.labPlusNumBox(GeneralUI.KiLabel, controller.IGain.ToString("N3"), 45);
                controller.DGain  = GeneralUI.labPlusNumBox(GeneralUI.KdLabel, controller.DGain.ToString("N3"), 45);
                controller.Scalar = GeneralUI.labPlusNumBox(GeneralUI.ScalarLabel, controller.Scalar.ToString("N3"), 45);
            }
        }
コード例 #18
0
        public void OnGUI()
        {
            if (ReferenceEquals(GeneralUI.UISkin, null))
            {
                GeneralUI.CustomSkin();
            }

            if (bHideUI)
            {
                return;
            }

            GUI.skin            = GeneralUI.UISkin;
            GUI.backgroundColor = GeneralUI.stockBackgroundGUIColor;
            Draw();
            BindingManager.Instance.Draw();
        }
コード例 #19
0
        private void drawPIDValues(PIDRclamp controller, string inputName, SASList controllerID)
        {
            stockPIDDisplay[(int)controllerID] = GUILayout.Toggle(stockPIDDisplay[(int)controllerID], inputName, GeneralUI.UISkin.customStyles[(int)myStyles.btnToggle]);

            if (stockPIDDisplay[(int)controllerID])
            {
                float kp, ki, kd;
                kp = (float)GeneralUI.labPlusNumBox(GeneralUI.KpLabel, controller.KP.ToString(), 45);
                ki = (float)GeneralUI.labPlusNumBox(GeneralUI.KiLabel, controller.KI.ToString(), 45);
                kd = (float)GeneralUI.labPlusNumBox(GeneralUI.KdLabel, controller.KD.ToString(), 45);

                if (kp != controller.KP || ki != controller.KI || kd != controller.KD)
                {
                    controller.ReinitializePIDsOnly(kp, ki, kd);
                }
            }
        }
コード例 #20
0
ファイル: SurfSAS.cs プロジェクト: DeamonSix/Pilot-Assistant
        // need to wait for Stock SAS to be ready, hence the Coroutine
        IEnumerator Initialise()
        {
            if (FlightData.thisVessel == null)
            {
                FlightData.thisVessel = FlightGlobals.ActiveVessel;
            }

            // wait for SAS to init
            if (FlightData.thisVessel.Autopilot.SAS.pidLockedPitch == null)
            {
                yield return(null);
            }

            bPause[0] = bPause[1] = bPause[2] = false;
            ActivitySwitch(false);

            if (!bInit)
            {
                SASControllers[(int)SASList.Pitch] = new PID_Controller(defaultPitchGains);
                SASControllers[(int)SASList.Roll]  = new PID_Controller(defaultRollGains);
                SASControllers[(int)SASList.Yaw]   = new PID_Controller(defaultYawGains);

                if (!PresetManager.Instance.craftPresetList.ContainsKey("default"))
                {
                    PresetManager.Instance.craftPresetList.Add("default", new CraftPreset("default", null, new SASPreset(SASControllers, "SSAS"), new SASPreset(FlightData.thisVessel.Autopilot.SAS, "stock"), bStockSAS));
                }
                else
                {
                    if (PresetManager.Instance.craftPresetList["default"].SSASPreset == null)
                    {
                        PresetManager.Instance.craftPresetList["default"].SSASPreset = new SASPreset(SASControllers, "SSAS");
                    }
                    if (PresetManager.Instance.craftPresetList["default"].StockPreset == null)
                    {
                        PresetManager.Instance.craftPresetList["default"].StockPreset = new SASPreset(FlightData.thisVessel.Autopilot.SAS, "stock");
                    }
                }
                PresetManager.saveDefaults();

                GeneralUI.InitColors();
                bInit = true;
            }
            PresetManager.loadCraftSSASPreset();
            PresetManager.loadCraftStockPreset();
        }
コード例 #21
0
        public static void deleteSASPreset(SASPreset p)
        {
            GeneralUI.postMessage("Deleted preset " + p.name);
            if (Instance.activeSASPreset == p)
            {
                Instance.activeSASPreset = null;
            }
            Instance.SASPresetList.Remove(p);

            foreach (KeyValuePair <string, CraftPreset> cp in instance.craftPresetDict)
            {
                if (!ReferenceEquals(cp.Value, null) && cp.Value.SASPreset == p)
                {
                    cp.Value.SASPreset = null;
                }
            }
            p = null;
            saveToFile();
        }
コード例 #22
0
        /// <summary>
        /// Creates a preset from an array of controllers. Can't access Asst controllers directly because more than one instance can be active
        /// </summary>
        /// <param name="name">preset name</param>
        /// <param name="controllers">controllers to build from</param>
        /// <param name="v">vessel to associate with</param>
        public static bool NewAsstPreset(string name, Asst_PID_Controller[] controllers, Vessel v)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(false);
            }

            if (Instance.AsstPresetList.Any(p => p.name == name))
            {
                GeneralUI.PostMessage("Failed to add preset with duplicate name");
                return(false);
            }
            var newPreset = new AsstPreset(controllers, name);

            Instance.UpdateCraftPreset(newPreset, v);
            Instance.AsstPresetList.Add(newPreset);
            SaveToFile();

            return(true); // new preset created successfully, can clear the string
        }
コード例 #23
0
ファイル: SurfSAS.cs プロジェクト: lemon1324/Pilot-Assistant
        private void drawSSASWindow(int id)
        {
            if (GUI.Button(new Rect(SSASwindow.width - 16, 2, 14, 14), ""))
            {
                PilotAssistantFlightCore.bDisplaySSAS = false;
            }

            bShowSSASPresets = GUILayout.Toggle(bShowSSASPresets, bShowSSASPresets ? "Hide SAS Presets" : "Show SAS Presets");

            GUI.backgroundColor = GeneralUI.HeaderButtonBackground;
            if (GUILayout.Button(bArmed ? "Disarm SAS" : "Arm SAS"))
            {
                bArmed = !bArmed;
                ActivitySwitch(vesModule.vesselRef.ActionGroups[KSPActionGroup.SAS]);

                GeneralUI.postMessage(bArmed ? "SSAS Armed" : "SSAS Disarmed");
            }
            GUI.backgroundColor = GeneralUI.stockBackgroundGUIColor;

            if (bArmed)
            {
                if (!(FlightUIController.speedDisplayMode == FlightUIController.SpeedDisplayModes.Orbit && currentMode == VesselAutopilot.AutopilotMode.StabilityAssist))
                {
                    if (currentMode == VesselAutopilot.AutopilotMode.StabilityAssist)
                    {
                        SASList.Pitch.GetSAS(this).SetPoint = TogPlusNumBox("Pitch:", SASList.Pitch, vesModule.vesselData.pitch, 80, 70);
                        currentTarget = Utils.getPlaneRotation(TogPlusNumBox("Heading:", SASList.Hdg, vesModule.vesselData.heading, 80, 70), vesModule);
                    }
                    SASList.Bank.GetSAS(this).SetPoint = TogPlusNumBox("Roll:", SASList.Bank, vesModule.vesselData.bank, 80, 70);
                }

                GUILayout.Box("", GUILayout.Height(10)); // seperator

                drawPIDValues(SASList.Pitch, "Pitch");
                drawPIDValues(SASList.Bank, "Roll");
                drawPIDValues(SASList.Hdg, "Yaw");
            }

            GUI.DragWindow();
            tooltip = GUI.tooltip;
        }
コード例 #24
0
        public static void newAPPreset(ref string name, APController[] controllers, Vessel v)
        {
            if (name == "")
            {
                return;
            }

            string tempName = name;

            if (Instance.APPresetList.Any(p => p.name == tempName))
            {
                GeneralUI.postMessage("Failed to add preset with duplicate name");
                return;
            }
            APPreset newPreset = new APPreset(controllers, name);

            updateCraftPreset(newPreset, v);
            Instance.APPresetList.Add(newPreset);
            Instance.activeAPPreset = PresetManager.Instance.APPresetList.Last();
            saveToFile();
            name = "";
        }
コード例 #25
0
ファイル: SurfSAS.cs プロジェクト: DeamonSix/Pilot-Assistant
        public void drawGUI()
        {
            GUI.skin = GeneralUI.UISkin;
            GeneralUI.Styles();

            // SAS toggle button
            if (bArmed)
            {
                if (SurfSAS.ActivityCheck())
                {
                    GUI.backgroundColor = GeneralUI.ActiveBackground;
                }
                else
                {
                    GUI.backgroundColor = GeneralUI.InActiveBackground;
                }

                if (GUI.Button(new Rect(Screen.width / 2 + 50, Screen.height - 200, 50, 30), "SSAS"))
                {
                    ActivitySwitch(!ActivityCheck());
                    updateTarget();
                    if (ActivityCheck())
                    {
                        setStockSAS(false);
                    }
                }
                GUI.backgroundColor = GeneralUI.stockBackgroundGUIColor;
            }

            // Main and preset window stuff
            if (!AppLauncherFlight.bDisplaySAS)
            {
                return;
            }
            Draw();
        }
コード例 #26
0
 public AccountsTab(UIManager uiManager, GeneralUI generalUI) : base(uiManager, new Size(640, 460))
 {
     _generalUI = generalUI;
 }
コード例 #27
0
ファイル: SurfSAS.cs プロジェクト: DeamonSix/Pilot-Assistant
        private void drawSASWindow(int id)
        {
            if (GUI.Button(new Rect(SASwindow.width - 16, 2, 14, 14), ""))
            {
                AppLauncherFlight.bDisplaySAS = false;
            }

            bShowPresets = GUILayout.Toggle(bShowPresets, bShowPresets ? "Hide SAS Presets" : "Show SAS Presets");

            bStockSAS = GUILayout.Toggle(bStockSAS, bStockSAS ? "Mode: Stock SAS" : "Mode: SSAS");

            if (!bStockSAS)
            {
                GUI.backgroundColor = GeneralUI.HeaderButtonBackground;
                if (GUILayout.Button(bArmed ? "Disarm SAS" : "Arm SAS"))
                {
                    bArmed = !bArmed;
                    if (!bArmed)
                    {
                        ActivitySwitch(false);
                    }

                    if (bArmed)
                    {
                        Messaging.statusMessage(8);
                    }
                    else
                    {
                        Messaging.statusMessage(9);
                    }
                }
                GUI.backgroundColor = GeneralUI.stockBackgroundGUIColor;

                if (bArmed)
                {
                    Utils.GetSAS(SASList.Pitch).SetPoint = Utils.Clamp((float)GeneralUI.TogPlusNumBox("Pitch:", ref bActive[(int)SASList.Pitch], FlightData.pitch, Utils.GetSAS(SASList.Pitch).SetPoint, 80), -90, 90);
                    Utils.GetSAS(SASList.Yaw).SetPoint   = GeneralUI.TogPlusNumBox("Heading:", ref bActive[(int)SASList.Yaw], FlightData.heading, Utils.GetSAS(SASList.Yaw).SetPoint, 80, 60, 360, 0);
                    if (!rollState) // editable
                    {
                        Utils.GetSAS(SASList.Roll).SetPoint = GeneralUI.TogPlusNumBox("Roll:", ref bActive[(int)SASList.Roll], FlightData.roll, Utils.GetSAS(SASList.Roll).SetPoint, 80, 60, 180, -180);
                    }
                    else // not editable b/c vector mode
                    {
                        GUILayout.BeginHorizontal();
                        bActive[(int)SASList.Roll] = GUILayout.Toggle(bActive[(int)SASList.Roll], "Roll:", GeneralUI.toggleButton, GUILayout.Width(80));
                        GUILayout.TextField(FlightData.roll.ToString("N2"), GUILayout.Width(60));
                        GUILayout.EndHorizontal();
                    }
                    GUILayout.Box("", GUILayout.Height(10));
                    drawPIDValues(SASList.Pitch, "Pitch");
                    drawPIDValues(SASList.Roll, "Roll");
                    drawPIDValues(SASList.Yaw, "Yaw");
                }
            }
            else
            {
                VesselAutopilot.VesselSAS sas = FlightData.thisVessel.Autopilot.SAS;

                drawPIDValues(sas.pidLockedPitch, "Pitch", SASList.Pitch);
                drawPIDValues(sas.pidLockedRoll, "Roll", SASList.Roll);
                drawPIDValues(sas.pidLockedYaw, "Yaw", SASList.Yaw);
            }

            GUI.DragWindow();
        }
コード例 #28
0
        public void Draw()
        {
            GUI.skin = GeneralUI.UISkin;
            GeneralUI.Styles();

            // Window resizing (scroll views dont work nicely with GUILayout)
            // Have to put the width changes before the draw so the close button is correctly placed
            if (showPIDLimits)
            {
                window.width = 370;
            }
            else
            {
                window.width = 233;
            }

            if (bShowHdg)
            {
                hdgScrollHeight = 0;
                if (!bWingLeveller)
                {
                    hdgScrollHeight += 55;
                }
                if ((Utils.GetAsst(PIDList.HdgBank).bShow || Utils.GetAsst(PIDList.HdgYaw).bShow) && !bWingLeveller)
                {
                    hdgScrollHeight += 150;
                }
                else if (showControlSurfaces)
                {
                    hdgScrollHeight += 50;
                    if (Utils.GetAsst(PIDList.Aileron).bShow || Utils.GetAsst(PIDList.Rudder).bShow)
                    {
                        hdgScrollHeight += 100;
                    }
                }
            }
            if (bShowVert)
            {
                vertScrollHeight = 38;
                if (bAltitudeHold)
                {
                    vertScrollHeight += 27;
                }
                if ((Utils.GetAsst(PIDList.Altitude).bShow&& bAltitudeHold) || (Utils.GetAsst(PIDList.VertSpeed).bShow))
                {
                    vertScrollHeight += 150;
                }
                else if (showControlSurfaces)
                {
                    vertScrollHeight += 27;
                    if (Utils.GetAsst(PIDList.Elevator).bShow)
                    {
                        vertScrollHeight += 123;
                    }
                }
            }

            GUI.backgroundColor = GeneralUI.stockBackgroundGUIColor;
            window = GUILayout.Window(34244, window, displayWindow, "Pilot Assistant", GUILayout.Height(0), GUILayout.MinWidth(233));

            presetWindow.x = window.x + window.width;
            presetWindow.y = window.y;
            if (showPresets)
            {
                presetWindow = GUILayout.Window(34245, presetWindow, displayPresetWindow, "Pilot Assistant Presets", GUILayout.Width(200), GUILayout.Height(0));
            }
        }
コード例 #29
0
	// Use this for initialization
	void Start () {
		cloudsTransform = GameObject.FindGameObjectWithTag("Earth Clouds");
		cloudRotationScript = cloudsTransform.GetComponent<CloudRotation>();
		generalUIScript = GameObject.FindGameObjectWithTag ("MainCamera").GetComponent<GeneralUI> ();
	}