Example #1
0
        public static void ParseFlyingVessel(bool doRealSignalNow = false)
        {
            listFlyingVessel = new Dictionary <string, Dictionary <string, string> >();
            for (int i = 0; i < FlightGlobals.Vessels.Count; i++)
            {
                var v = FlightGlobals.Vessels[i];
                //foreach (Vessel v in FlightGlobals.Vessels) {
                if ((v.vesselType != VesselType.EVA) &&
                    (v.vesselType != VesselType.Flag) &&
                    (v.vesselType != VesselType.SpaceObject) &&
                    (v.vesselType != VesselType.Unknown) &&
                    (v.vesselType != VesselType.Debris) /* &&
                                                         * (v.parts.Count > 0)*/)
                {
                    string pid              = v.id.ToString();
                    double vesselPower      = AHUtil.GetActualVesselPower(v, false, true, false);
                    double vesselRelayPower = AHUtil.GetActualVesselPower(v, true, true, false);


                    listFlyingVessel.Add(pid, new Dictionary <string, string>());
                    listFlyingVessel[pid].Add("name", v.GetName());
                    listFlyingVessel[pid].Add("type", v.vesselType.ToString());
                    listFlyingVessel[pid].Add("powerTotal", vesselPower.ToString());
                    listFlyingVessel[pid].Add("powerRelay", vesselRelayPower.ToString());
                    listFlyingVessel[pid].Add("saveDate", "");
                    listFlyingVessel[pid].Add("realSignal", "");
                    listFlyingVessel[pid].Add("connectedTo", "");

                    if (doRealSignalNow)
                    {
                        ComputeRealSignal(v);
                    }
                }
            }
        }
Example #2
0
        private IEnumerator StartSecond()
        {
            while (Time.time < timeAtStart + HighLogic.CurrentGame.Parameters.CustomParams <AntennaHelperSettings> ().startDelay /*1f*/)
            {
                yield return(timers [0]);
            }

            vessel = FlightGlobals.ActiveVessel;

            // possible fix for AH not always working, see forum around 16.05.2018
            if (vessel == null)
            {
                Debug.Log("[AH] active vessel is null, shouldn't happen...");
                ReStartSecond();
            }

            vesselPower      = AHUtil.GetActualVesselPower(vessel);
            vesselPowerRelay = AHUtil.GetActualVesselPower(vessel, true);
            dsnRange         = AHUtil.GetRange(vesselPower, dsnPower);
            SetDeployableAntennaList();

            SetRelayList();
            SetActiveConnect();
            yield return(SetMarkerList());

            AddToolbarButton();
            StartCoroutine("UpdateCommNet");
        }
Example #3
0
 public RelayVessel(Vessel v)
 {
     vessel      = v;
     relayPower  = AHUtil.GetActualVesselPower(v, true);
     directPower = AHUtil.GetActualVesselPower(v);
     //				isConnected = vessel.Connection.IsConnected;
     name = vessel.GetName();
 }
Example #4
0
 public static void UpdateRelayVessels()
 {
     potentialRelays = new List <RelayVessel> ();
     foreach (Vessel v in FlightGlobals.Vessels.FindAll(v => (v.Connection != null)))
     {
         double relayPower = AHUtil.GetActualVesselPower(v, true);
         if (relayPower > 0)
         {
             potentialRelays.Add(new RelayVessel(v));
         }
     }
 }
Example #5
0
        public static List <Vessel> GetFlyingRelays()
        {
            List <Vessel> flyingRelays = new List <Vessel>();

            foreach (Vessel v in GetAllFlyingVessel())
            {
                if (AHUtil.GetActualVesselPower(v, true) > 0)
                {
                    flyingRelays.Add(v);
                }
            }
            return(flyingRelays);
        }
Example #6
0
        private void VesselModified(Vessel v = null)
        {
            double actualPower = AHUtil.GetActualVesselPower(FlightGlobals.ActiveVessel);

            if (actualPower != vesselPower)
            {
                hasStarted = false;
                StopAllCoroutines();
                DestroyMarkers();
                timeAtStart = Time.time;
                StartCoroutine("StartSecond");
            }
        }
Example #7
0
        private IEnumerator StartSecond()
        {
            while (Time.time < timeAtStart + 1f)
            {
                yield return(timers [0]);
            }

            vessel           = FlightGlobals.ActiveVessel;
            vesselPower      = AHUtil.GetActualVesselPower(vessel);
            vesselPowerRelay = AHUtil.GetActualVesselPower(vessel, true);
            dsnRange         = AHUtil.GetRange(vesselPower, dsnPower);
            SetDeployableAntennaList();

            SetRelayList();
            SetActiveConnect();
            yield return(SetMarkerList());

            AddToolbarButton();
            StartCoroutine("UpdateCommNet");
        }
Example #8
0
        static Relay()
        {
            home            = FlightGlobals.GetHomeBody();
            _dsn            = new Relay();
            _dsn.relayPower = GameVariables.Instance.GetDSNRange
                                  (ScenarioUpgradeableFacilities.GetFacilityLevel
                                      (SpaceCenterFacility.TrackingStation));
            _dsn.directPower    = _dsn.relayPower;
            _dsn.isDSN          = true;
            _dsn.distanceOffset = home.Radius;
            _dsn.name           = /*"DSN"*/ Localizer.Format("#autoLOC_AH_0014");

            potentialRelays = new List <RelayVessel> ();
            foreach (Vessel v in FlightGlobals.Vessels.FindAll(v => (v.Connection != null) && (v != FlightGlobals.ActiveVessel)))
            {
                double relayPower = AHUtil.GetActualVesselPower(v, true);
                if (relayPower > 0)
                {
                    potentialRelays.Add(new RelayVessel(v));
                }
            }
            //				Debug.Log ("[AH] dsn distance offset : " + _dsn.distanceOffset);
            //				Debug.Log ("[AH] static dsn relay constructed");
        }