public void Update() { UpdateNearBeacons(); if (nearBeacon == null || nearBeacon.Vessel != vessel) { bool present = nearBeacon != null; for (int i = hailers.Count - 1; i >= 0; i--) { bool hailerActive = hailers[i].hailerActive; hailers[i].Fields["nearBeaconDistance"].guiActive = present && hailerActive; hailers[i].Fields["nearBeaconRelVel"].guiActive = present && hailerActive; hailers[i].Fields["hasNearBeacon"].guiActive = hailerActive; hailers[i].hasNearBeacon = present ? "Present" : "Not Present"; } } else { for (int i = hailers.Count - 1; i >= 0; i--) { hailers[i].Fields["nearBeaconDistance"].guiActive = false; hailers[i].Fields["nearBeaconRelVel"].guiActive = false; hailers[i].Fields["hasNearBeacon"].guiActive = hailers[i].hailerActive; hailers[i].hasNearBeacon = "Onboard"; } } if (nearBeacon == null) { return; } float nearBeaconDistance = Vector3.Distance(vessel.GetWorldPos3D(), nearBeacon.Vessel.GetWorldPos3D()); float nearBeaconRelVel = Vector3.Magnitude(vessel.obt_velocity - nearBeacon.Vessel.obt_velocity); driftpenalty = ESLDBeacon.GetDriftPenalty(nearBeaconDistance, nearBeaconRelVel, nearBeacon.GetCrewBonuses("Pilot", 0.5f, 5)); HCUParts = GetHCUParts(vessel); //[Part name] - [Resource name] HCUPartFailures.Clear(); HCUPartFailures.AddRange(HCUParts.Select(kvp => kvp.Key.name + " - " + kvp.Value)); HCUPartsList = HCUParts.Keys.ToList(); tonnage = vessel.GetTotalMass(); sciBonus = nearBeacon.GetCrewBonuses("Scientist", 0.5f, 5); for (int i = targetDetails.Count - 1; i >= 0; i--) { targetDetails[i].Update(); } for (int i = hailers.Count - 1; i >= 0; i--) { hailers[i].nearBeaconDistance = nearBeaconDistance; hailers[i].nearBeaconRelVel = nearBeaconRelVel; } }
public void Update() { UpdateNearBeacons(); if (nearBeacon == null || (UnityEngine.Object)nearBeacon.Vessel != (UnityEngine.Object)vessel) { bool flag = nearBeacon != null; for (int i = hailers.Count - 1; i >= 0; i--) { bool hailerActive = hailers[i].hailerActive; ((BaseFieldList <BaseField, KSPField>)hailers[i].Fields)["nearBeaconDistance"].guiActive = (flag & hailerActive); ((BaseFieldList <BaseField, KSPField>)hailers[i].Fields)["nearBeaconRelVel"].guiActive = (flag & hailerActive); ((BaseFieldList <BaseField, KSPField>)hailers[i].Fields)["hasNearBeacon"].guiActive = hailerActive; hailers[i].hasNearBeacon = (flag ? "Present" : "Not Present"); } } else { for (int i = hailers.Count - 1; i >= 0; i--) { ((BaseFieldList <BaseField, KSPField>)hailers[i].Fields)["nearBeaconDistance"].guiActive = false; ((BaseFieldList <BaseField, KSPField>)hailers[i].Fields)["nearBeaconRelVel"].guiActive = false; ((BaseFieldList <BaseField, KSPField>)hailers[i].Fields)["hasNearBeacon"].guiActive = hailers[i].hailerActive; hailers[i].hasNearBeacon = "Onboard"; } } if (nearBeacon != null) { float nearBeaconDistance = Vector3.Distance(vessel.GetWorldPos3D(), nearBeacon.Vessel.GetWorldPos3D()); float nearBeaconRelVel = Vector3.Magnitude(vessel.obt_velocity - nearBeacon.Vessel.obt_velocity); driftpenalty = ESLDBeacon.GetDriftPenalty(nearBeaconDistance, nearBeaconRelVel, nearBeacon.GetCrewBonuses("Pilot", 0.5f, 5)); HCUParts = GetHCUParts(vessel); //[Part name] - [Resource name] HCUPartFailures.Clear(); HCUPartFailures.AddRange(from kvp in HCUParts select kvp.Key.name + " - " + kvp.Value); HCUPartsList = HCUParts.Keys.ToList(); tonnage = vessel.GetTotalMass(); sciBonus = nearBeacon.GetCrewBonuses("Scientist", 0.5f, 5); for (int i = targetDetails.Count - 1; i >= 0; i--) { targetDetails[i].Update(); } for (int i = hailers.Count - 1; i >= 0; i--) { hailers[i].nearBeaconDistance = (double)nearBeaconDistance; hailers[i].nearBeaconRelVel = (double)nearBeaconRelVel; } } }