Esempio n. 1
0
        void comButtonClick()
        {
            if (RCSBuildAid.Enabled)
            {
                /* plugin enabled, CoM button is for toggle marker visibility */
                bool visible = !CoM.GetComponent <MarkerVisibility> ().GeneralToggle;
                CoM.GetComponent <MarkerVisibility> ().GeneralToggle  = visible;
                DCoM.GetComponent <MarkerVisibility> ().GeneralToggle = visible;
                ACoM.GetComponent <MarkerVisibility> ().GeneralToggle = visible;

                /* we need the CoM to remain active, but we can't stop the editor from
                 * deactivating it when the CoM toggle button is used, so we toggle it now so is
                 * toggled again by the editor. That way it will remain active. */

                Log.Info("comButtonClick, setting to: " + !CoM.activeInHierarchy);
                CoM.SetActive(!CoM.activeInHierarchy);
            }

            if (!RCSBuildAid.Enabled)
            {
                /* restore CoM visibility, so the regular CoM toggle button works. */
                var markerVisibility = CoM.GetComponent <MarkerVisibility> ();
                if (markerVisibility != null)
                {
                    markerVisibility.Show();
                }
            }
        }
Esempio n. 2
0
 void activateMarkers(bool value)
 {
     Log.Info("activateMarkers, setting to: " + value);
     CoM.SetActive(value);
     DCoM.SetActive(value);
     ACoM.SetActive(value);
 }
Esempio n. 3
0
        void comButtonClick()
        {
            bool markerEnabled = !CoM.activeInHierarchy; /* toggle com */

            if (userEnable)
            {
                bool visible = !CoM.GetComponent <MarkerVisibility> ().GeneralToggle;
                CoM.GetComponent <MarkerVisibility> ().GeneralToggle  = visible;
                DCoM.GetComponent <MarkerVisibility> ().GeneralToggle = visible;
                ACoM.GetComponent <MarkerVisibility> ().GeneralToggle = visible;

                /* we need the CoM to remain active, but we can't stop the editor from
                 * deactivating it when the CoM toggle button is used, so we toggle it now so is
                 * toggled again by the editor. That way it will remain active. */
                CoM.SetActive(markerEnabled);
            }

            if (!userEnable && markerEnabled)
            {
                /* restore CoM visibility, so the regular CoM toggle button works. */
                var markerVisibility = CoM.GetComponent <MarkerVisibility> ();
                if (markerVisibility != null)
                {
                    markerVisibility.Show();
                }
            }
        }
Esempio n. 4
0
 void activateMarkers(bool value)
 {
     CoM.SetActive(value);
     DCoM.SetActive(value);
     ACoM.SetActive(value);
     if (value && (RCSBuildAid.Mode == PluginMode.Parachutes))
     {
         CoD.SetActive(true);
     }
     else
     {
         CoD.SetActive(false);
     }
 }
Esempio n. 5
0
        public static void SetActive(bool enabled)
        {
            userEnable = enabled;
            CoM.SetActive(enabled);
            DCoM.SetActive(enabled);
            ACoM.SetActive(enabled);

            if (enabled)
            {
                events.OnPluginEnabled(true);
            }
            else
            {
                events.OnPluginDisabled(true);
            }
        }
Esempio n. 6
0
        public static void SetActive(bool value)
        {
            userEnable = value;
            CoM.SetActive(value);
            DCoM.SetActive(value);
            ACoM.SetActive(value);

            if (value)
            {
                Events.OnPluginEnabled(true);
            }
            else
            {
                Events.OnPluginDisabled(true);
            }
            Events.OnPluginToggled(value, true);
        }
Esempio n. 7
0
        public static void SetActive(bool value)
        {
            Log.Info("SetActive, setting to: " + value);
            userEnable = value;
            CoM.SetActive(value);
            DCoM.SetActive(value);
            ACoM.SetActive(value);

            if (value)
            {
                Events.OnPluginEnabled(true);
            }
            else
            {
                Events.OnPluginDisabled(true);
            }
            Events.OnPluginToggled(value, true);
        }
Esempio n. 8
0
        void setSoftActive(bool enabled)
        {
            /* for disable the plugin temporally without changing what the user set */
            softEnable = enabled;
            bool pluginEnabled = Enabled;

            CoM.SetActive(pluginEnabled);
            DCoM.SetActive(pluginEnabled);
            ACoM.SetActive(pluginEnabled);
            if (pluginEnabled)
            {
                events.OnPluginEnabled(false);
            }
            else
            {
                events.OnPluginDisabled(false);
            }
        }
Esempio n. 9
0
        void setSoftActive(bool value)
        {
            /* for disable the plugin temporally without changing what the user set */
            softEnable = value;
            bool pluginEnabled = Enabled;

            CoM.SetActive(pluginEnabled);
            DCoM.SetActive(pluginEnabled);
            ACoM.SetActive(pluginEnabled);
            if (pluginEnabled)
            {
                Events.OnPluginEnabled(false);
            }
            else
            {
                Events.OnPluginDisabled(false);
            }
            Events.OnPluginToggled(value, false);
        }
Esempio n. 10
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. 11
0
 void activateMarkers(bool value)
 {
     CoM.SetActive(value);
     DCoM.SetActive(value);
     ACoM.SetActive(value);
 }
Esempio n. 12
0
        void setupMarker()
        {
            /* get CoM */
            if (vesselOverlays.CoMmarker == null)
            {
                gameObject.SetActive(false);
                throw new Exception("CoM marker is null, this shouldn't happen.");
            }
            CoM = vesselOverlays.CoMmarker.gameObject;

            /* init DCoM */
            DCoM = (GameObject)UnityEngine.Object.Instantiate(CoM);
            Destroy(DCoM.GetComponent <EditorMarker_CoM> ());           /* we don't need this */
            DCoM.name = "DCoM Marker";
            if (DCoM.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 < DCoM.transform.childCount; i++)
                {
                    Destroy(DCoM.transform.GetChild(i).gameObject);
                }
            }

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

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

            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;

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

            dcomMarker.posMarkerObject = DCoM;

            /* 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);

            var obj = new GameObject("Vessel Forces Object");

            obj.layer    = CoM.layer;
            vesselForces = obj.AddComponent <MarkerForces> ();
            SetReferenceMarker(ReferenceType);

            /* scaling for CoL and CoT markers */
            vesselOverlays.CoLmarker.gameObject.AddComponent <MarkerScaler> ();
            vesselOverlays.CoTmarker.gameObject.AddComponent <MarkerScaler> ();

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