Esempio n. 1
0
        public static void DrawContent()
        {
            MarkerForces     comv = RCSBuildAid.VesselForces;
            MassEditorMarker comm = RCSBuildAid.ReferenceMarker.GetComponent <MassEditorMarker> ();

            GUILayout.BeginHorizontal();
            {
                if (RCSBuildAid.EngineList.Count != 0)
                {
                    GUILayout.BeginVertical();
                    {
                        GUILayout.Label("Reference");
                        GUILayout.Label("Torque");
                        GUILayout.Label("Thrust");
                        GUILayout.Label("TWR");
                    }
                    GUILayout.EndVertical();
                    GUILayout.BeginVertical();
                    {
                        MainWindow.referenceButton();
                        GUILayout.Label(comv.Torque().magnitude.ToString("0.### kNm"));
                        GUILayout.Label(comv.Thrust().magnitude.ToString("0.## kN"));
                        GUILayout.Label((comv.Thrust().magnitude / (comm.mass * 9.81)).ToString("0.##"));
                    }
                    GUILayout.EndVertical();
                }
                else
                {
                    GUILayout.Label("No engines attached", MainWindow.style.centerText);
                }
            }
            GUILayout.EndHorizontal();
        }
Esempio n. 2
0
 protected MassEditorMarker()
 {
     instance = this;
 }
        void initMarkers()
        {
            /* get CoM */
            if (vesselOverlays.CoMmarker == null) {
                throw new Exception ("CoM marker is null, this shouldn't happen.");
            }
            CoM = vesselOverlays.CoMmarker.gameObject;

            protoMarker = (GameObject)UnityEngine.Object.Instantiate (CoM);
            Destroy (protoMarker.GetComponent<EditorMarker_CoM> ()); /* we don't need this */
            protoMarker.name = "Marker Prototype";
            if (protoMarker.transform.childCount > 0) {
                /* Stock CoM doesn't have any attached objects, if there's some it means
                 * there's a plugin doing the same thing as us. We don't want extra
                 * objects */
                for (int i = 0; i < protoMarker.transform.childCount; i++) {
                    Destroy (protoMarker.transform.GetChild (i).gameObject);
                }
            }

            /* init DCoM */
            DCoM = (GameObject)UnityEngine.Object.Instantiate (protoMarker);
            DCoM.name = "DCoM Marker";

            /* init ACoM */
            ACoM = (GameObject)UnityEngine.Object.Instantiate (protoMarker);
            ACoM.name = "ACoM Marker";

            /* init CoD */
            CoD = (GameObject)UnityEngine.Object.Instantiate (protoMarker);

            referenceDict [MarkerType.CoM] = CoM;
            referenceDict [MarkerType.DCoM] = DCoM;
            referenceDict [MarkerType.ACoM] = ACoM;

            /* CoM setup, replace stock component with our own */
            CoMMarker comMarker = CoM.AddComponent<CoMMarker> ();
            comMarker.posMarkerObject = vesselOverlays.CoMmarker.posMarkerObject;
            Destroy (vesselOverlays.CoMmarker);
            vesselOverlays.CoMmarker = comMarker;
            WetMass = comMarker;

            /* setup DCoM */
            DCoMMarker dcomMarker = DCoM.AddComponent<DCoMMarker> (); /* we do need this    */
            dcomMarker.posMarkerObject = DCoM;
            DryMass = dcomMarker;

            /* setup ACoM */
            var acomMarker = ACoM.AddComponent<AverageMarker> ();
            acomMarker.posMarkerObject = ACoM;
            acomMarker.CoM1 = comMarker;
            acomMarker.CoM2 = dcomMarker;

            /* setup CoD */
            var codMarker = CoD.AddComponent<CoDMarker> ();
            codMarker.posMarkerObject = CoD;
            CoD.SetActive (false);

            /* attach our method to the CoM toggle button */
            vesselOverlays.toggleCoMbtn.onClick.AddListener (delegate { comButtonClick (); });

            try {
                /* scaling for CoL and CoT markers */
                vesselOverlays.CoLmarker.gameObject.AddComponent<MarkerScaler> ();
                vesselOverlays.CoTmarker.gameObject.AddComponent<MarkerScaler> ();
            } catch (NullReferenceException) {
                Debug.LogWarning ("CoL/CoT marker is null, this shouldn't happen.");
            }
        }
Esempio n. 4
0
 protected MassEditorMarker()
 {
     instance = this;
 }
Esempio n. 5
0
        void initMarkers()
        {
            /* get CoM */
            if (vesselOverlays.CoMmarker == null)
            {
                throw new Exception("CoM marker is null, this shouldn't happen.");
            }
            CoM = vesselOverlays.CoMmarker.gameObject;

            protoMarker = (GameObject)UnityEngine.Object.Instantiate(CoM);
            Destroy(protoMarker.GetComponent <EditorMarker_CoM> ()); /* we don't need this */
            protoMarker.name = "Marker Prototype";
            if (protoMarker.transform.childCount > 0)
            {
                /* Stock CoM doesn't have any attached objects, if there's some it means
                 * there's a plugin doing the same thing as us. We don't want extra
                 * objects */
                for (int i = 0; i < protoMarker.transform.childCount; i++)
                {
                    Destroy(protoMarker.transform.GetChild(i).gameObject);
                }
            }

            /* init DCoM */
            DCoM      = (GameObject)UnityEngine.Object.Instantiate(protoMarker);
            DCoM.name = "DCoM Marker";

            /* init ACoM */
            ACoM      = (GameObject)UnityEngine.Object.Instantiate(protoMarker);
            ACoM.name = "ACoM Marker";

            /* init CoD */
            CoD = (GameObject)UnityEngine.Object.Instantiate(protoMarker);

            referenceDict [MarkerType.CoM]  = CoM;
            referenceDict [MarkerType.DCoM] = DCoM;
            referenceDict [MarkerType.ACoM] = ACoM;

            /* CoM setup, replace stock component with our own */
            CoMMarker comMarker = CoM.AddComponent <CoMMarker> ();

            comMarker.posMarkerObject = vesselOverlays.CoMmarker.posMarkerObject;
            Destroy(vesselOverlays.CoMmarker);
            vesselOverlays.CoMmarker = comMarker;
            WetMass = comMarker;

            /* setup DCoM */
            DCoMMarker dcomMarker = DCoM.AddComponent <DCoMMarker> (); /* we do need this    */

            dcomMarker.posMarkerObject = DCoM;
            DryMass = dcomMarker;

            /* setup ACoM */
            var acomMarker = ACoM.AddComponent <AverageMarker> ();

            acomMarker.posMarkerObject = ACoM;
            acomMarker.CoM1            = comMarker;
            acomMarker.CoM2            = dcomMarker;

            /* setup CoD */
            var codMarker = CoD.AddComponent <CoDMarker> ();

            codMarker.posMarkerObject = CoD;
            CoD.SetActive(false);

            /* attach our method to the CoM toggle button */
            vesselOverlays.toggleCoMbtn.onClick.AddListener(delegate { comButtonClick(); });

            try {
                /* scaling for CoL and CoT markers */
                vesselOverlays.CoLmarker.gameObject.AddComponent <MarkerScaler> ();
                vesselOverlays.CoTmarker.gameObject.AddComponent <MarkerScaler> ();
            } catch (NullReferenceException) {
                Debug.LogWarning("CoL/CoT marker is null, this shouldn't happen.");
            }
        }
Esempio n. 6
0
 public MassEditorMarker()
 {
     instance = this;
 }