public override void OnUpdate() { base.OnUpdate(); double dElectric_Draw = 10.0 * dW_to_EC; double elecAvail = part.RequestResource("ElectricCharge", dElectric_Draw) / dElectric_Draw; bool bPowered = (elecAvail > 0.90); dIndicated_Deviation = -10.0; sStation_ID = "---"; sTo_From = "####"; if (bPowered) { cNav_Select = null; foreach (Part p in vessel.Parts) { //string sMsg1 = "VI: " + p.name; //print(sMsg1); foreach (PartModule m in p.Modules) { //string sMsg2 = "VIm: " + m.name; //print(sMsg2); VHF_NAV_Receiver cNav = m as VHF_NAV_Receiver; if (cNav != null) { cNav_Select = cNav; } } } if (cNav_Select != null) { //string sMsg = "VOR indicator found receiver " + cNav_Select.moduleName; //print(sMsg); VOR cVOR = cNav_Select.getTunedVOR(); if (cVOR != null) { bool bZOC = cVOR.inZoneOfConfusion(cNav_Select.getPosition()); if (!bZOC) { double dDeviation = (iOBS - cVOR.getBearingFrom(cNav_Select.getPosition())) % 360.0; if (dDeviation > 180.0) { dDeviation -= 360.0; } while (dDeviation < -180.0) { dDeviation += 360.0; } bool bTo = dDeviation <-90.0 || dDeviation> 90.0; if (bTo) { sTo_From = " TO "; if (dDeviation < -90.0) { dDeviation = -180.0 - dDeviation; } else { dDeviation = 180.0 - dDeviation; } } else { sTo_From = "FROM"; } dIndicated_Deviation = dDeviation / 2.5; sStation_ID = cVOR.sStation_ID; } } } } }