private void Init(Vessel v, ReentrySimulation.SimCurves _simCurves, double startTime, int limitChutesStage) { totalMass = 0; var oParts = v.Parts; count = oParts.Count; simCurves = _simCurves; if (parts.Capacity < count) { parts.Capacity = count; } for (int i = 0; i < count; i++) { SimulatedPart simulatedPart = null; bool special = false; for (int j = 0; j < oParts[i].Modules.Count; j++) { ModuleParachute mp = oParts[i].Modules[j] as ModuleParachute; if (mp != null && v.mainBody.atmosphere) { special = true; simulatedPart = SimulatedParachute.Borrow(mp, simCurves, startTime, limitChutesStage); } } if (!special) { simulatedPart = SimulatedPart.Borrow(oParts[i], simCurves); } parts.Add(simulatedPart); totalMass += simulatedPart.totalMass; } }