public override bool Load(ConfigNode configNode) { // Before loading, verify the SCANsat version if (!SCANsatUtil.VerifySCANsatVersion()) { return(false); } // Load base class bool valid = base.Load(configNode); valid &= ConfigNodeUtil.ParseValue <double>(configNode, "coverage", x => coverage = x, this); valid &= ConfigNodeUtil.ParseValue <string>(configNode, "scanType", x => scanType = x, this, SCANsatUtil.ValidateSCANname); valid &= ValidateTargetBody(configNode); return(valid); }
public override bool Load(ConfigNode configNode) { // Before loading, verify the SCANsat version if (!SCANsatUtil.VerifySCANsatVersion()) { return(false); } // Load base class bool valid = base.Load(configNode); // Do not check the requirement on active contracts. Otherwise when they scan the // contract is invalidated, which is usually not what's meant. checkOnActiveContract = false; valid &= ConfigNodeUtil.ParseValue <string>(configNode, "scanType", x => scanType = x, this, "Anomaly", SCANsatUtil.ValidateSCANname); valid &= ConfigNodeUtil.ParseValue <double>(configNode, "latitude", x => latitude = x, this, 0.0); valid &= ConfigNodeUtil.ParseValue <double>(configNode, "longitude", x => longitude = x, this, 0.0); valid &= ConfigNodeUtil.MutuallyExclusive(configNode, new string[] { "latitude", "longitude" }, new string[] { "pqsCity" }, this); valid &= ValidateTargetBody(configNode); string pqsName = null; valid &= ConfigNodeUtil.ParseValue <string>(configNode, "pqsCity", x => pqsName = x, this, (string)null); if (pqsName != null) { try { CelestialBody body = FlightGlobals.Bodies.Where(b => b == targetBody).First(); pqsCity = body.GetComponentsInChildren <PQSCity>(true).Where(pqs => pqs.name == pqsName).First(); } catch (Exception e) { LoggingUtil.LogError(this, "Couldn't load PQSCity with name '" + pqsCity + "'"); LoggingUtil.LogException(e); valid = false; } } return(valid); }
public override bool Load(ConfigNode configNode) { // Before loading, verify the SCANsat version if (!SCANsatUtil.VerifySCANsatVersion()) { return(false); } // Load base class bool valid = base.Load(configNode); // Do not check the requirement on active contracts. Otherwise when they scan the // contract is invalidated, which is usually not what's meant. checkOnActiveContract = false; valid &= ConfigNodeUtil.ParseValue <double>(configNode, "minCoverage", x => minCoverage = x, this, 0.0); valid &= ConfigNodeUtil.ParseValue <double>(configNode, "maxCoverage", x => maxCoverage = x, this, 100.0); valid &= ConfigNodeUtil.ParseValue <string>(configNode, "scanType", x => scanType = x, this, SCANsatUtil.ValidateSCANname); valid &= ValidateTargetBody(configNode); return(valid); }