Example #1
0
        public Review()
        {
            // Initialize coverage for Celestial Bodies (other than the Sun)

            CelestialBody[] Bodies = FlightGlobals.Bodies.ToArray();
            Coverages = new CoverageReport [Bodies.Length - 1];

            int k = 0;

            for (int i = 0; i < Bodies.Length; i++)
            {
                CelestialBody Body = Bodies [i];

                // Don't need to survey the sun
                if (Body.GetName() != "Sun")
                {
                    CoverageReport Report = new CoverageReport();
                    Report.entity = Body.GetName();

                    // Benchmark: Kerbin
                    // 10 sats till full coverage on Kerbin
                    Report.satCountForFullCoverage = (int)Math.Ceiling(Body.Radius / 60000);

                    Coverages [k] = Report;
                    k++;
                }
            }
        }
Example #2
0
        private void UpdateCoverage()
        {
            for (int i = 0; i < Coverages.Length; i++)
            {
                Coverages [i].satCount = 0;
            }

            Vessel[] Satellites = VesselHelper.GetSatellites();

            for (int i = 0; i < Satellites.Length; i++)
            {
                Vessel Satellite = Satellites [i];

                CelestialBody  Body   = Satellite.GetOrbit().referenceBody;
                CoverageReport Report = GetReport(Body.GetName());
                Report.satCount++;
                Report.Update();
            }

            float totalCoverage = 0;

            for (int i = 0; i < Coverages.Length; i++)
            {
                totalCoverage += Coverages [i].coverage;
            }

            satelliteCoverage = (float)totalCoverage / (float)Coverages.Length;
        }
Example #3
0
        public Review()
        {
            // Initialize coverage for Celestial Bodies (other than the Sun)

              CelestialBody[] Bodies = FlightGlobals.Bodies.ToArray ();
              Coverages = new CoverageReport [Bodies.Length-1];

              CelestialBody home = Planetarium.fetch.Home;
              if (home == null) home = FlightGlobals.Bodies.Find(body => body.isHomeWorld == true);
              if (home != null) refRadius = home.Radius / 10;

              int k = 0;
              for (int i = 0; i < Bodies.Length; i++) {
            CelestialBody Body = Bodies [i];

            // Don't need to survey the sun
            if (Body.GetName () != "Sun") {
              CoverageReport Report = new CoverageReport ();
              Report.entity = Body.GetName ();

              // Benchmark: Kerbin
              // 10 sats till full coverage on Kerbin
              Report.satCountForFullCoverage = (int)Math.Ceiling (Body.Radius / refRadius);

              Coverages [k] = Report;
              k++;
            }
              }
        }
Example #4
0
        public Review()
        {
            // Initialize coverage for Celestial Bodies (other than the Sun)

              CelestialBody[] Bodies = FlightGlobals.Bodies.ToArray ();
              Coverages = new CoverageReport [Bodies.Length-1];

              int k = 0;
              for (int i = 0; i < Bodies.Length; i++) {
            CelestialBody Body = Bodies [i];

            // Don't need to survey the sun
            if (Body.GetName () != "Sun") {
              CoverageReport Report = new CoverageReport ();
              Report.entity = Body.GetName ();

              // Benchmark: Kerbin
              // 10 sats till full coverage on Kerbin
              Report.satCountForFullCoverage = (int)Math.Ceiling (Body.Radius / 60000);

              Coverages [k] = Report;
              k++;
            }
              }
        }
Example #5
0
        public CoverageReport GetReport(string bodyName)
        {
            for (var i = 0; i < Coverages.Length; i++)
            {
                CoverageReport Report = Coverages [i];
                if (Report.entity == bodyName)
                {
                    return(Report);
                }
            }

            CoverageReport CReport = new CoverageReport();

            CReport.entity = bodyName;

            return(CReport);
        }
Example #6
0
        public static void draw(View Vw, ViewWindow Window)
        {
            Window.title = "Satellite Coverage";
            Instance GameInstance = StateFundingGlobal.fetch.GameInstance;
            Review   Rev          = GameInstance.ActiveReview;

            Rev.touch();

            string Description = "Below is your space programs satellite coverage. Satellite coverage increases State Confidence. " +
                                 "The number of satellites needed to provide full coverage veries depending on the size of the " +
                                 "celestial body. Kerbin needs 10 satelites to be fully covered while a small moon like Pol only " +
                                 "needs 1 and the massive Jool needs 100. Your total coverage is calculated on the coverage provided " +
                                 "to all celestial bodies. So even though Jool needs so many you can still get a high coverage " +
                                 "rating by covering the smaller bodies. So start with Kerbin, moons, and the near planets. To have " +
                                 "a qualified \"Surveyor Satellite\" it must have an antenna, an autonomous control system, and be " +
                                 "able to generate power.";

            ViewLabel DescriptionLabel = new ViewLabel(Description);

            DescriptionLabel.setRelativeTo(Window);
            DescriptionLabel.setLeft(140);
            DescriptionLabel.setTop(20);
            DescriptionLabel.setColor(Color.white);
            DescriptionLabel.setHeight(100);
            DescriptionLabel.setWidth(Window.getWidth() - 140);

            Vw.addComponent(DescriptionLabel);

            ViewLabel TotalCoverage = new ViewLabel("Total Coverage: " + Math.Round((double)Rev.satelliteCoverage * 100) + "%");

            TotalCoverage.setRelativeTo(Window);
            TotalCoverage.setLeft(140);
            TotalCoverage.setTop(130);
            TotalCoverage.setColor(Color.white);
            TotalCoverage.setHeight(30);
            TotalCoverage.setWidth(Window.getWidth() - 140);

            Vw.addComponent(TotalCoverage);

            ViewScroll CoverageScroll = new ViewScroll();

            CoverageScroll.setRelativeTo(Window);
            CoverageScroll.setWidth(Window.getWidth() - 140);
            CoverageScroll.setHeight(Window.getHeight() - 160);
            CoverageScroll.setLeft(140);
            CoverageScroll.setTop(150);

            Vw.addComponent(CoverageScroll);

            CoverageReport[] Coverages = Rev.Coverages;

            int labelHeight = 20;

            for (int i = 0; i < Coverages.Length; i++)
            {
                CoverageReport Coverage = Coverages [i];
                string         label    = Coverage.entity + " : (" +
                                          Coverage.satCount + "/" +
                                          Coverage.satCountForFullCoverage + ") " +
                                          Math.Round(Coverage.coverage * 100) + "%";

                ViewLabel CoverageLabel = new ViewLabel(label);
                CoverageLabel.setRelativeTo(CoverageScroll);
                CoverageLabel.setTop(labelHeight + (labelHeight + 5) * i);
                CoverageLabel.setLeft(0);
                CoverageLabel.setHeight(labelHeight);
                CoverageLabel.setWidth(CoverageScroll.getWidth() - 20);

                if (Coverage.coverage <= 0.25)
                {
                    CoverageLabel.setColor(Color.white);
                }
                else if (Coverage.coverage <= .75)
                {
                    CoverageLabel.setColor(Color.yellow);
                }
                else
                {
                    CoverageLabel.setColor(Color.green);
                }

                CoverageScroll.Components.Add(CoverageLabel);
            }
        }
Example #7
0
        public CoverageReport GetReport(string bodyName)
        {
            for (var i = 0; i < Coverages.Length; i++) {
            CoverageReport Report = Coverages [i];
            if (Report.entity == bodyName) {
              return Report;
            }
              }

              CoverageReport CReport = new CoverageReport();
              CReport.entity = bodyName;

              return CReport;
        }