private void SOIChange(GameEvents.HostedFromToAction <Vessel, CelestialBody> VB) { if (VB.host == null) { return; } if (!VB.host.loaded) { return; } if (VB.host != vessel) { return; } values = null; }
private void getScienceData(bool sensorOnly, bool asteroid, bool silent) { ScienceData data = null; if (asteroid) { DMSeismicHammer hammer = vessel.FindPartModulesImplementing <DMSeismicHammer>().FirstOrDefault(); if (hammer == null) { data = DMSeismicHandler.makeData(values, values.Score, exp, experimentID, sensorOnly, asteroid); } else { hammer.DeployExperiment(); return; } } else { DMSeismometerValues v = values.getBestHammer(); data = DMSeismicHandler.makeData(v, v.Score, exp, experimentID, sensorOnly, asteroid); } if (data == null) { return; } GameEvents.OnExperimentDeployed.Fire(data); scienceReports.Add(data); Deployed = true; if (!silent) { ReviewData(); } }
private void Update() { base.EventsCheck(); if (!HighLogic.LoadedSceneIsFlight) { return; } if (values == null) { values = DMSeismicHandler.Instance.getSeismicSensor(part.flightID); if (values != null) { values.OnAsteroid = DMAsteroidScience.AsteroidGrappled; } return; } bool valid = vessel.Landed || values.OnAsteroid; if (valid) { scoreString = values.Score.ToString("P0"); } else { scoreString = "Not Valid"; } if (values.Armed && values.NearbySensorCount >= 1) { setEmissive(signalLightOne, greenLight); } else { setEmissive(signalLightOne, offColor); } if (!values.Armed || !valid) { setEmissive(scoreLightOne, offColor); setEmissive(scoreLightTwo, offColor); setEmissive(scoreLightThree, offColor); setEmissive(scoreLightFour, offColor); setEmissive(scoreLightFive, offColor); } else if (values.Score < 0.21f) { setEmissive(scoreLightOne, redLight); setEmissive(scoreLightTwo, offColor); setEmissive(scoreLightThree, offColor); setEmissive(scoreLightFour, offColor); setEmissive(scoreLightFive, offColor); } else if (values.Score < 0.56f) { setEmissive(scoreLightOne, redLight); setEmissive(scoreLightTwo, yellowLight); setEmissive(scoreLightThree, offColor); setEmissive(scoreLightFour, offColor); setEmissive(scoreLightFive, offColor); } else if (values.Score < 0.71f) { setEmissive(scoreLightOne, redLight); setEmissive(scoreLightTwo, yellowLight); setEmissive(scoreLightThree, yellowLight); setEmissive(scoreLightFour, offColor); setEmissive(scoreLightFive, offColor); } else if (values.Score < 0.86f) { setEmissive(scoreLightOne, redLight); setEmissive(scoreLightTwo, yellowLight); setEmissive(scoreLightThree, yellowLight); setEmissive(scoreLightFour, greenLight); setEmissive(scoreLightFive, offColor); } else { setEmissive(scoreLightOne, redLight); setEmissive(scoreLightTwo, yellowLight); setEmissive(scoreLightThree, yellowLight); setEmissive(scoreLightFour, greenLight); setEmissive(scoreLightFive, greenLight); } }