Esempio n. 1
0
        public double getCoveragePercentage(SCANtype type)
        {
            if (type == SCANtype.Nothing)
            {
                type = SCANtype.AltimetryLoRes | SCANtype.AltimetryHiRes | SCANtype.Biome | SCANtype.Anomaly;
            }
            double cov = getCoverage(type);

            if (cov <= 0)
            {
                cov = 100;
            }
            else
            {
                cov = Math.Min(99.9d, 100 - cov * 100d / (360d * 180d * SCANcontroller.countBits((int)type)));
            }
            return(cov);
        }
Esempio n. 2
0
        private static void loadSCANtypes()
        {
            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes("SCANSAT_SENSOR"))
            {
                string name = "";
                int    i    = 0;
                if (node.HasValue("name"))
                {
                    name = node.GetValue("name");
                }
                if (node.HasValue("SCANtype"))
                {
                    if (!int.TryParse(node.GetValue("SCANtype"), out i))
                    {
                        continue;
                    }
                }

                SCANcontroller.addToResourceTypes(name, new SCANresourceType(name, i));
            }
        }
 public override void OnDecodeFromConfigNode()
 {
     SCANcontroller.setMasterTerrainNodes(SCANsat_Altimetry);
     SCANcontroller.setMasterResourceNodes(SCANsat_Resources);
 }
Esempio n. 4
0
        private static void loadResources()
        {
            foreach (var rs in ResourceCache.Instance.GlobalResources)
            {
                if ((HarvestTypes)rs.ResourceType != HarvestTypes.Planetary)
                {
                    continue;
                }

                SCANresourceType t = OverlayResourceType(rs.ResourceName);

                if (t == null)
                {
                    continue;
                }

                SCANresourceGlobal currentGlobal = SCANcontroller.getResourceNode(rs.ResourceName);

                if (currentGlobal == null)
                {
                    SCANcontroller.addToResourceData(rs.ResourceName, new SCANresourceGlobal(rs.ResourceName, 20, rs.Distribution.MinAbundance, rs.Distribution.MaxAbundance, palette.magenta, palette.cb_orange, t));
                    currentGlobal = SCANcontroller.getResourceNode(rs.ResourceName);
                }

                if (rs.Distribution.MinAbundance > currentGlobal.DefaultMinValue)
                {
                    currentGlobal.DefaultMinValue = rs.Distribution.MinAbundance;
                }

                if (rs.Distribution.MaxAbundance > currentGlobal.DefaultMaxValue)
                {
                    currentGlobal.DefaultMaxValue = rs.Distribution.MaxAbundance;
                }

                foreach (CelestialBody body in FlightGlobals.Bodies)
                {
                    SCANresourceBody newBody = currentGlobal.getBodyConfig(body.name, false);

                    if (newBody == null)
                    {
                        currentGlobal.addToBodyConfigs(body.name, new SCANresourceBody(rs.ResourceName, body, currentGlobal.DefaultMinValue, currentGlobal.DefaultMaxValue), false);
                    }
                }

                SCANcontroller.addToLoadedResourceNames(rs.ResourceName);
            }

            foreach (var rsBody in ResourceCache.Instance.PlanetaryResources)
            {
                if ((HarvestTypes)rsBody.ResourceType != HarvestTypes.Planetary)
                {
                    continue;
                }

                SCANresourceGlobal currentGlobal = SCANcontroller.getResourceNode(rsBody.ResourceName);

                if (currentGlobal == null)
                {
                    continue;
                }

                SCANresourceBody currentBody = currentGlobal.getBodyConfig(rsBody.PlanetName, false);

                if (currentBody == null)
                {
                    CelestialBody body = FlightGlobals.Bodies.FirstOrDefault(a => a.name == rsBody.PlanetName);
                    if (body == null)
                    {
                        continue;
                    }

                    currentGlobal.addToBodyConfigs(rsBody.PlanetName, new SCANresourceBody(rsBody.ResourceName, body, rsBody.Distribution.MinAbundance, rsBody.Distribution.MaxAbundance), false);
                    currentBody = currentGlobal.getBodyConfig(rsBody.PlanetName, false);
                }

                if (rsBody.Distribution.MinAbundance > currentBody.DefaultMinValue)
                {
                    currentBody.DefaultMinValue = rsBody.Distribution.MinAbundance;
                }

                if (rsBody.Distribution.MaxAbundance > currentBody.DefaultMaxValue)
                {
                    currentBody.DefaultMaxValue = rsBody.Distribution.MaxAbundance;
                }
            }

            if (SCANcontroller.MasterResourceCount == 0)
            {
                globalResource = false;
            }
            else
            {
                globalResource = true;
            }
        }
Esempio n. 5
0
 private static SCANresourceType OverlayResourceType(string s)
 {
     return(SCANcontroller.getResourceType(s));
 }