public void Update() { double t = Planetarium.GetUniversalTime(); mSolar.Update(); updateTrackedKerbals(); if (radiationEnabled) { foreach (Vessel v in FlightGlobals.Vessels) // ensure every vessel has a RadiationTracker { getRT(v); } List <Vessel> trackedVessels = new List <Vessel>(mVessels.Keys); foreach (Vessel v in trackedVessels) { if (v.state == Vessel.State.DEAD) { ForgetVessel(v); } else { mVessels[v].Update(t - lastUpdate); } } foreach (KeyValuePair <Vessel, List <KerbalTracker> > kvp in mTracked) { Vessel v = kvp.Key; foreach (KerbalTracker kt in kvp.Value) { if (kt.Update(v)) { ForgetKerbal(kt); } } } } lastUpdate = t; }